i have this code first column is auto complete i want after selected data from first column set data into other td with this code is not set where is the error
$("#Items_tbl").off("focus", "tr").on("focus", "tbody tr", function () {
var series = $(this).find("td:eq(1) input").val();
var series2 = $(this).find("td:eq(3) input").val();
for (var i = 1; i < $("#Items_tbl tr").length; i++) {
$(this).find("td:eq(1) input").autocomplete({
minLength: 0,
select: function (event, ui) {
$(this).val("");
$(this).val(ui.item.item_name);
$.ajax({
type: 'POST',
url: '/SalesInvoice/Return_Item_Price',
data: { Item_name: $('#Items_tbl tr td:nth-child(2)').find("input").val(), Company: $("#companyt").val(), PriceList: $("#price_list").val(), Customer: $("#t_customer").val(), UOM: "", Warehouse: "" },
success: function (response) {
//if (response == '') {
// $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(12)").find("input").val("0.0");
// $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(20)").find("input").val("0.0");
// $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(5)").find("input").val("1");
// $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(30)").find("input").val($("#Form_CostCenter").val());
// $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(13)").find("input").val(math.multiply(math.bignumber(parseFloat("1")) * parseFloat("0.0")));
//}
// else {
data = $.map(response, function (item, a) {
// alert(item.Item_Prices)
$("#Items_tbl tr:eq('" + i + "') td:eq(12) input").val(item.Item_Prices)
// $(this).find("td:eq(12)").find("input").val(item.Item_Prices);
// $('#Items_tbl tr td:nth-child(13)').find("input").val(item.Item_Prices)
Qty = $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(5)").find("input").val();
Exchange_rate = ToFloat("#exchange_rate");
var balance = item.balance_qty
var Conversion_factor = item.Conversion_factor
var qty_at_warehouse = math.divide(math.bignumber(parseFloat(balance)), math.bignumber(parseFloat(Conversion_factor)))
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(19)").find("input").val(balance);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(37)").find("input").val(qty_at_warehouse);
rate = $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(12)").find("input").val();
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(12)").find("input").val(numeral(item.Item_Prices).format($("#NumberFormat").val()));
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(5)").find("input").val("1");
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(13)").find("input").val(numeral(math.multiply(math.bignumber(1), math.bignumber(item.Item_Prices))).format($("#NumberFormat").val()));
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(30)").find("input").val($("#Form_CostCenter").val());
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(42)").find("input").val(item.barcode);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(20)").find("input").val(numeral(parseFloat(item.Item_Prices)).format($("#NumberFormat").val()) + " " + $("#currency").val());
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(14)").find("input").val(item.item_name);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(18)").find("input").val(item.Conversion_factor);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(15)").find("input").val(item.item_code);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(16)").find("input").val(item.DefaultUOM_ID);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(34)").find("input").val(item.default_warehouse_ID);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(35)").find("input").val(item.batch_id);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(35)").find("input").attr('list', 'Item_Batches');
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(31)").find("input").val(item.expense_account_ID);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(29)").find("input").val(item.selling_cost_center_ID);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(17)").find("input").val(item.sales_uom_ID);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(32)").find("input").val(item.weight_per_unit);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(33)").find("input").val(math.multiply(math.bignumber(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(5) input"))), math.bignumber(item.weight_per_unit)));
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(29)").find("input").val(item.income_account_ID);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(44)").find("input").val(item.DiscountORAmount);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(45)").find("input").val(item.discount_percentage);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(48)").find("input").val(item.price_rule);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(52)").find("input").val(item.Coverage_By);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(53)").find("input").val(item.Coverage_Amt);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(54)").find("input").val(item.Company);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(37)").find("input").val(item.balance_qty);
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(21)").find("input").val(numeral(math.multiply(math.bignumber(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(20) input"))), math.bignumber(Exchange_rate))).format($("#PL_Currency_format").val()) + " " + $("#price_list_currency").val());
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(22)").find("input").val(numeral(math.multiply(math.bignumber(item.Item_Prices), math.bignumber(Exchange_rate))).format($("#PL_Currency_format").val()) + " " + $("#price_list_currency").val());
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(23)").find("input").val(numeral(math.multiply(math.bignumber(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(13) input"))), math.bignumber(Exchange_rate))).format($("#PL_Currency_format").val()) + " " + $("#price_list_currency").val());
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(24)").find("input").val($("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(12)").find("input").val() + " " + $("#currency").val());
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(25)").find("input").val(math.multiply(math.bignumber(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(12) input"))), math.bignumber(Exchange_rate)) + " " + $("#price_list_currency").val());
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(27)").find("input").val(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(13) input")));
$("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(28)").find("input").val(math.multiply(math.bignumber(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(13) input"))), math.bignumber(Exchange_rate)) + " " + $("#price_list_currency").val());
});
// }
},
dataType: "json"
}).done(function () {
Totales();
});
return false;
},
source: function (request, response) {
$.ajax({
type: "POST",
url: "/AutoComplete/Get_sales_item",
data: { term: request.term },
dataType: 'json',
success: function (data) {
// response(data);
response(data.slice(0, 20));
}
});
},
open: function (event, ui) {
// $('.ui-autocomplete').append('<li class="advance_search"><a href="javascript:$("#ModalAdvanceSearch").modal("show")"><p style="cursor:pointer;color:#0284f6;font-family:Calibri;font-size:11pt"> <img src="@Url.Content("~/img/search_blue.png")" style="width:20px;height:15px" /> Advanced Search</p></a></li> <li class="advance_search"><a href="javascript:$("#ModalAdvanceSearch").modal("show")"><p style="cursor:pointer;color:#0284f6;font-family:Calibri;font-size:11pt"> <img src="@Url.Content("~/img/plus.png")" style="width:10px;height:10px" /> Create a New Customer</p></a></li>'); //See all results
$('.ui-autocomplete').append('<li class="advance_search"><a href="javascript:$("#ModalAdvanceSearch").modal("show")"><p style="cursor:pointer;color:#0284f6;font-family:Calibri;font-size:11pt"> <img src="@Url.Content("~/img/search_blue.png")" style="width:20px;height:15px" /> Advanced Search</p></a></li>'); //See all results
$(".advance_search").click(function () {
$("#ModalAdvanceSearch").modal("show")
})
},
}).focus(function () {
if (this.value == "") {
$(this).autocomplete("search");
}
}).autocomplete('instance')._renderItem = function (ul, item) {
return $("<li>").append("<div style='font-size:10pt;font-weight:bold'>" + item.item_name + "<p style='font-size:8pt;font-family:Calibri;font-weight:bold'></p>" + "</div>").appendTo(ul)
}
}
})
those highlited code should set data to it which is return from sql db
I did a simple test and reproduced your issue, the pronlem seems to be that in a for loop, the ajax will excute at last together for correct times with incorrect value which in your case $("#Items_tbl tr").length which should not be executed.
Member
75 Points
513 Posts
after select data from jquery autocomplete set data into other td
Oct 25, 2019 06:04 PM|zhyanadil.it@gmail.com|LINK
i have this code first column is auto complete i want after selected data from first column set data into other td with this code is not set where is the error
$("#Items_tbl").off("focus", "tr").on("focus", "tbody tr", function () { var series = $(this).find("td:eq(1) input").val(); var series2 = $(this).find("td:eq(3) input").val(); for (var i = 1; i < $("#Items_tbl tr").length; i++) { $(this).find("td:eq(1) input").autocomplete({ minLength: 0, select: function (event, ui) { $(this).val(""); $(this).val(ui.item.item_name); $.ajax({ type: 'POST', url: '/SalesInvoice/Return_Item_Price', data: { Item_name: $('#Items_tbl tr td:nth-child(2)').find("input").val(), Company: $("#companyt").val(), PriceList: $("#price_list").val(), Customer: $("#t_customer").val(), UOM: "", Warehouse: "" }, success: function (response) { //if (response == '') { // $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(12)").find("input").val("0.0"); // $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(20)").find("input").val("0.0"); // $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(5)").find("input").val("1"); // $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(30)").find("input").val($("#Form_CostCenter").val()); // $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(13)").find("input").val(math.multiply(math.bignumber(parseFloat("1")) * parseFloat("0.0"))); //} // else { data = $.map(response, function (item, a) { // alert(item.Item_Prices) $("#Items_tbl tr:eq('" + i + "') td:eq(12) input").val(item.Item_Prices) // $(this).find("td:eq(12)").find("input").val(item.Item_Prices); // $('#Items_tbl tr td:nth-child(13)').find("input").val(item.Item_Prices) Qty = $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(5)").find("input").val(); Exchange_rate = ToFloat("#exchange_rate"); var balance = item.balance_qty var Conversion_factor = item.Conversion_factor var qty_at_warehouse = math.divide(math.bignumber(parseFloat(balance)), math.bignumber(parseFloat(Conversion_factor))) $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(19)").find("input").val(balance); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(37)").find("input").val(qty_at_warehouse); rate = $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(12)").find("input").val(); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(12)").find("input").val(numeral(item.Item_Prices).format($("#NumberFormat").val())); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(5)").find("input").val("1"); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(13)").find("input").val(numeral(math.multiply(math.bignumber(1), math.bignumber(item.Item_Prices))).format($("#NumberFormat").val())); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(30)").find("input").val($("#Form_CostCenter").val()); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(42)").find("input").val(item.barcode); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(20)").find("input").val(numeral(parseFloat(item.Item_Prices)).format($("#NumberFormat").val()) + " " + $("#currency").val()); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(14)").find("input").val(item.item_name); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(18)").find("input").val(item.Conversion_factor); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(15)").find("input").val(item.item_code); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(16)").find("input").val(item.DefaultUOM_ID); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(34)").find("input").val(item.default_warehouse_ID); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(35)").find("input").val(item.batch_id); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(35)").find("input").attr('list', 'Item_Batches'); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(31)").find("input").val(item.expense_account_ID); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(29)").find("input").val(item.selling_cost_center_ID); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(17)").find("input").val(item.sales_uom_ID); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(32)").find("input").val(item.weight_per_unit); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(33)").find("input").val(math.multiply(math.bignumber(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(5) input"))), math.bignumber(item.weight_per_unit))); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(29)").find("input").val(item.income_account_ID); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(44)").find("input").val(item.DiscountORAmount); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(45)").find("input").val(item.discount_percentage); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(48)").find("input").val(item.price_rule); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(52)").find("input").val(item.Coverage_By); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(53)").find("input").val(item.Coverage_Amt); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(54)").find("input").val(item.Company); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(37)").find("input").val(item.balance_qty); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(21)").find("input").val(numeral(math.multiply(math.bignumber(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(20) input"))), math.bignumber(Exchange_rate))).format($("#PL_Currency_format").val()) + " " + $("#price_list_currency").val()); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(22)").find("input").val(numeral(math.multiply(math.bignumber(item.Item_Prices), math.bignumber(Exchange_rate))).format($("#PL_Currency_format").val()) + " " + $("#price_list_currency").val()); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(23)").find("input").val(numeral(math.multiply(math.bignumber(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(13) input"))), math.bignumber(Exchange_rate))).format($("#PL_Currency_format").val()) + " " + $("#price_list_currency").val()); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(24)").find("input").val($("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(12)").find("input").val() + " " + $("#currency").val()); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(25)").find("input").val(math.multiply(math.bignumber(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(12) input"))), math.bignumber(Exchange_rate)) + " " + $("#price_list_currency").val()); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(27)").find("input").val(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(13) input"))); $("#Items_tbl").find("tr:eq(" + i + ")").find("td:eq(28)").find("input").val(math.multiply(math.bignumber(ToFloat(("#Items_tbl tr:eq(" + i + ") td:eq(13) input"))), math.bignumber(Exchange_rate)) + " " + $("#price_list_currency").val()); }); // } }, dataType: "json" }).done(function () { Totales(); }); return false; }, source: function (request, response) { $.ajax({ type: "POST", url: "/AutoComplete/Get_sales_item", data: { term: request.term }, dataType: 'json', success: function (data) { // response(data); response(data.slice(0, 20)); } }); }, open: function (event, ui) { // $('.ui-autocomplete').append('<li class="advance_search"><a href="javascript:$("#ModalAdvanceSearch").modal("show")"><p style="cursor:pointer;color:#0284f6;font-family:Calibri;font-size:11pt"> <img src="@Url.Content("~/img/search_blue.png")" style="width:20px;height:15px" /> Advanced Search</p></a></li> <li class="advance_search"><a href="javascript:$("#ModalAdvanceSearch").modal("show")"><p style="cursor:pointer;color:#0284f6;font-family:Calibri;font-size:11pt"> <img src="@Url.Content("~/img/plus.png")" style="width:10px;height:10px" /> Create a New Customer</p></a></li>'); //See all results $('.ui-autocomplete').append('<li class="advance_search"><a href="javascript:$("#ModalAdvanceSearch").modal("show")"><p style="cursor:pointer;color:#0284f6;font-family:Calibri;font-size:11pt"> <img src="@Url.Content("~/img/search_blue.png")" style="width:20px;height:15px" /> Advanced Search</p></a></li>'); //See all results $(".advance_search").click(function () { $("#ModalAdvanceSearch").modal("show") }) }, }).focus(function () { if (this.value == "") { $(this).autocomplete("search"); } }).autocomplete('instance')._renderItem = function (ul, item) { return $("<li>").append("<div style='font-size:10pt;font-weight:bold'>" + item.item_name + "<p style='font-size:8pt;font-family:Calibri;font-weight:bold'></p>" + "</div>").appendTo(ul) } } })
those highlited code should set data to it which is return from sql db
Contributor
3140 Points
983 Posts
Re: after select data from jquery autocomplete set data into other td
Oct 28, 2019 04:04 AM|Yang Shen|LINK
Hi zhyanadil,
I did a simple test and reproduced your issue, the pronlem seems to be that in a for loop, the ajax will excute at last together for correct times with incorrect value which in your case
$("#Items_tbl tr").length
which should not be executed.To solve this problem, you can refer to jQuery ajax inside a loop problem, do your ajax in a function.
Also check below demo:
Here's the result:
Best Regard,
Yang Shen