复选框onchange上的表单提交不会提交最后一个复选框

时间:2016-03-11 13:28:50

标签: javascript jquery html forms onchange

我有一个带有复选框的表单和最后的提交按钮。选择一个并提交表单后,它会发布到服务器,我可以更改查询,以便按该复选框值进行过滤。

HTML& JS

<input id="category-1" class="filter-checkbox" type="checkbox" value="1" name="filter-categories[]" data-fid="1" checked="">
<label for="category-1">Clothing</label>


jQuery(document).ready(function ($) {
    // FILTERS
    $('#form-filter .filter-options input[type="checkbox"]').change(function (e) {
        $('#form-filter').submit();
    });
});

如果我评论javascript规则,只需选择一个框并点击提交一切正常,但如果我打开javascript我点击链接 - 表单提交,但不会更改值。它几乎看起来像提交比更改或其他更快,因此值不会更改和发送。

ANY1?谢谢!

3 个答案:

答案 0 :(得分:2)

您应该将click事件与复选框一起使用,因为change事件发生在实际更改复选框的值之前。

让我知道它是否有效。干杯!

<input id="category-1" class="filter-checkbox" type="checkbox" value="1" name="filter-categories[]" data-fid="1" checked="">
<label for="category-1">Clothing</label>


jQuery(document).ready(function ($) {
    // FILTERS
    $('#form-filter .filter-options input[type="checkbox"]').click(function (e) {
        $('#form-filter').submit();
    });
});

答案 1 :(得分:0)

您是否在表格提交活动中执行任何其他功能?通常情况下,表单可以通过复选框点击提交,如此

$('#checkbox').click(function() { 
    if(this.checked) {//just for checking
        //Then trigger the form submit event
        $("#form").trigger('submit');
    } 
    else{
       //do else.
    }
   });

答案 2 :(得分:0)

好吧,这让我发疯,但我解决了。我不知何故认为有一个jquery错误,就像我提交前没有选中复选框一样。事实并非如此,问题出在我的PHP中。

jQuery submit()函数不会发送提交按钮的值。在我的PHP代码中,我检查了是否设置了提交按钮,在我看来总是如此,但现在还没有。所以if (!empty($_POST['submit-btn'])) {是假的,我的脚本停止了工作。

谢谢你们