php - 通过 JS 更新的表单输入未提交

标签 php javascript jquery forms codeigniter

保存通过 JS 更新的发票行项目总计的发票输入值在提交时返回 NULL 值。

<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" />

JS

function calcProdSubTotal() {

    var prodSubTotal = 0;

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

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

        prodSubTotal += 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();
            });
        }
    );
});

我最初将输入设置为禁用,但我已将它们更改为只读,因为无法提交禁用的字段。

我错过了什么?

提前致谢。

最佳答案

您尚未设置name -您的 <input /> 上的属性s,因此 PHP 无法访问它们的值,并且当您查找 $_POST['product-tax'] 时不会返回任何内容。 。如果您设置了error_reportingE_ALL ,您应该会看到一条通知,告诉您正在尝试访问 $_POST 上的未定义索引。数组。

关于php - 通过 JS 更新的表单输入未提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1736822/

相关文章:

php - 使用 Codeigniter 循环遍历此 json 对象 (jquery)

javascript - OwlCarousel 2 的动态自动播放时间

javascript - Ext.util.JSONP.request 始终返回 "Uncaught ReferenceError: callback is not defined"

javascript - JQuery 调整大小性能问题

php - 查询表单转SQL错误

php - Yii2 - jui datepicker 扩展 - 默认显示当前时间戳

javascript - 我如何在 location.href 中传递多个参数?

javascript - jquery 检查 URL 是否已经有查询字符串

javascript - nodejs、jquery ajax、传输和接收对象的格式转换

Jquery - 遍历所有 xml 标签