Функция Jquery не отображает значение переменной
Здесь я планирую отобразить HTML-таблицу,она дает все значения, кроме значения Productname2.
$строки.функции append($(").в формате HTML(знач.ProductName2));
Пожалуйста, кто-нибудь скажет мне, где я ошибаюсь ??
var subTot = 0; $('#Discount').val(0); var PID = 0; var ProductName; $(function () { $('select#DProducts').change(function () { ProductName = $("[id*='DProducts'] :selected").text(); //// alert(ProductName); // $.getJSON("/Sale/SelectedItemId/" + $("#DProducts > option: selected").attr("value"), function (data) { // PID = data.Val(); // }); }); }); $(document).ready(function () { var orderItems = []; //Add button click function $('#add').click(function () { //Check validation of order item var isValidItem = true; if ($('#DProducts').val() == '') { isValidItem = false; $('#DProducts').siblings('span.error').css('visibility', 'visible'); } else { $('#DProducts').siblings('span.error').css('visibility', 'hidden'); } if (!($('#quantity').val() != '' && !isNaN($('#quantity').val()))) { isValidItem = false; $('#quantity').siblings('span.error').css('visibility', 'visible'); } else { $('#quantity').siblings('span.error').css('visibility', 'hidden'); } if (!($('#UnitPrice').val()!= '' && !isNaN($('#UnitPrice').val()))) { isValidItem = false; $('#UnitPrice').siblings('span.error').css('visibility', 'visible'); } else { $('#UnitPrice').siblings('span.error').css('visibility', 'hidden'); } //get ProductId //Add item to list if valid if (isValidItem) { orderItems.push({ ProductId: PID, Quantity: parseInt($('#quantity').val()), UnitPrice: parseFloat($('#UnitPrice').val()), SubTotal: parseInt($('#quantity').val()) * parseFloat($('#UnitPrice').val()) }); subTot = subTot + (parseInt($('#quantity').val()) * parseFloat($('#UnitPrice').val())) //Clear fields // $('#DProducts').val('').focus(); $('#quantity,#UnitPrice').val(''); } //populate order items GeneratedItemsTable(); $('#SubTotal').val(parseFloat(subTot)); $('#NetTotal').val(parseFloat(subTot) - parseFloat($('#Discount').val())); }); //Save button click function $('#submit').click(function () { //validation of order var isAllValid = true; if (orderItems.length == 0) { $('#orderItems').html('<span style="color:red;">Please add order items</span>'); isAllValid = false; } if ($('#AccountInvNo').val().trim() == '') { $('#AccountInvNo').siblings('span.error').css('visibility', 'visible'); isAllValid = false; } else { $('#AccountInvNo').siblings('span.error').css('visibility', 'hidden'); } if ($('#SaleDate').val().trim() == '') { $('#SaleDate').siblings('span.error').css('visibility', 'visible'); isAllValid = false; } else { $('#SaleDate').siblings('span.error').css('visibility', 'hidden'); } if ($('#Customer').val().trim() == '') { $('#Customer').siblings('span.error').css('visibility', 'visible'); isAllValid = false; } else { $('#Customer').siblings('span.error').css('visibility', 'hidden'); } //Save if valid if (isAllValid) { var data = { AccntInvoiceNo: $('#AccountInvNo').val(), SaleDate: $('#SaleDate').val(), SubTotal: $('#SubTotal').val(), Discount: $('#Discount').val(), NetAmount: $('#NetTotal').val(), SaleType: 1, CustomerId: 2, UserId: 1, SaleDescs: orderItems } $(this).val('Please wait...'); $.ajax({ url: '/Sale/SaveOrder', type: "POST", data: JSON.stringify(data), dataType: "JSON", contentType: "application/json", success: function (d) { //check is successfully save to database if (d.status == true) { //will send status from server side alert('Successfully done.'); //clear form orderItems = []; $('#AccountInvNo').val(''); $('#saleDate').val(''); $('#orderItems').empty(); $('#SubTotal').val(''); $('#Discount').val(''); $('#NetTotal').val(''); } else { alert('Failed'); } $('#submit').val('Save'); }, error: function (exception) { alert('Exeption:' + exception); $('#submit').val('Save'); } }); } }); //function for show added items in table function GeneratedItemsTable() { if (orderItems.length > 0) { var $table = $('<table/>'); $table.append('<thead><tr><th>Item</th><th>Quantity</th><th>Unit Price</th><th>Total</th></tr></thead>'); var $tbody = $('<tbody/>'); $.each(orderItems, function (i, val) { var $ProductName2 = $("[id*='DProducts'] :selected").text(); var $row = $('<tr/>'); $row.append($('<td/>').html(val.ProductName2)); $row.append($('<td/>').html(val.Quantity)); $row.append($('<td/>').html(val.UnitPrice)); $row.append($('<td/>').html(val.SubTotal)); var $remove = $('<a href="#">Remove</a>'); $remove.click(function (e) { e.preventDefault(); orderItems.splice(i, 1); GeneratedItemsTable(); }); $row.append($('<td/>').html($remove)); $tbody.append($row); }); $table.append($tbody); $('#orderItems').html($table); } else { $('#orderItems').html(''); } } });
Что я уже пробовал:
Я попытался дать текст.То product2
но проблема все еще существует.
F-ES Sitecore
Если проблема в вэле.ProductName2 тогда в "val" нет свойства ProductName2, или оно пусто. Поскольку мы не знаем, что такое orderItems, невозможно сказать, почему это может быть. Если проблема заключается в том, что $ProductName2 не может быть использован, то нет элемента, который соответствовал бы селектору, и поскольку мы не видим разметки, мы не можем сказать, почему это может быть. Вам нужно научиться отлаживать свой код или, по крайней мере, предоставлять более релевантную информацию.
Member 11883599
Да, вы правы. Я не добавлял productname в массив orderitems.
теперь он работает нормально.
большое спасибо за вашу немедленную поддержку.