2016-03-11 162 views
0

我有一个表单,最后有复选框和提交按钮。当选择一个表单并提交表单时,它会发布到服务器,我可以更改查询,以便按照该复选框的值进行过滤。表单提交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?谢谢!

+0

在你的HTML中,我认为还有更多?像'

'? – zer00ne

+0

是的,'' –

回答

0

好吧,这让我疯狂,但我解决了它。我不知何故认为有一个jQuery的错误,就像我提交之前没有选择复选框。情况并非如此,问题出在我的PHP中。

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

Thanks guys guys

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

Aaaaargh你几乎是我的一天,但它没有帮助:( –

+0

对不起,如果你能提供我们的PHP代码,将会有所帮助。干杯! –

0

你是否在表单提交事件中做任何其他函数?通常情况下,表格可以像这样在复选框中提交

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