Member 11883599 Ответов: 0

Функция 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.
теперь он работает нормально.
большое спасибо за вашу немедленную поддержку.

0 Ответов