开发者

Form Inputs updated via JS don't get submitted

The invoice input values which hold the totals of invoice line items that get updated via JS return a NULL value when they are submitted.

<span class="sublabel">Subtotal</span><input type="text" class="total-box" id="product-subtotal" readonly="true" />
<span class="sublabel">Tax</span><input type="text" class="total-box" id="product-tax" readonly="true" />
<span class="sublabel">Total</span><input type="text" class="total-box" id="order-total" readonly="true" />

The JS

function calcProdSubTotal() {

    var prodSubTotal = 0;

    $(".row-total-input").each(function(){

        var valString = $(this).val() || 0;

        prodSubTotal += 开发者_StackOverflow中文版parseInt(valString);

    });

    $("#product-subtotal").val(prodSubTotal);

    };

function calcTaxTotal() {

    var taxTotal = 0;
    //var taxAmount = 10;   
    var taxAmount = $("#salesTaxAmount").val() || 0;

    var productSubtotal = $("#product-subtotal").val() || 0;

    var taxTotal = parseInt(productSubtotal) * parseInt(taxAmount) / 100;
    var taxTotalNice = taxTotal;
    $("#product-tax").val(taxTotalNice);

};

function calcOrderTotal() {

    var orderTotal = 0;

    var productSubtotal = $("#product-subtotal").val() || 0;
    var productTax = $("#product-tax").val() || 0;

    var orderTotal = parseInt(productSubtotal) + parseInt(productTax);
    var orderTotalNice = "$" + orderTotal;

    $("#order-total").val(orderTotalNice);

};



$(function(){
    $('.row-total-input').each(
        function( intIndex ){
            $('.invAmount').livequery('blur', function() {
                    var $this = $(this);
                    var amount = $this.val();

                    var qty = $this.parent().find('.invQty').val(); 

                    if ( (IsNumeric(amount)) && (amount != '') ) {           
                        var rowTotal = qty * amount;   
                        $this.css("background-color", "white").parent().find(".row-total-input").val(rowTotal); 
                    } else {        
                        $this.css("background-color", "#ffdcdc");                     
                    };                              
                    calcProdSubTotal(); 
                    calcTaxTotal()
                    calcOrderTotal();
            });
        }
    );
});

I originally had the inputs set as disabled however I have changed them to readonly because disabled fields can't be submitted.

What am i missing?

Thanks in advance.


You haven't set a name-attribute on your <input />s, so PHP can't access their values, and returns nothing when you look for $_POST['product-tax']. If you have set error_reporting to E_ALL, you should see a notice telling you you are trying to access an undefined index on the $_POST array.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜