在复选框 onchange 上提交的表单不提交最后一个选中的框
Form submitting on checkbox onchange doesnt submit the last checked box
我有一个带有复选框和末尾提交按钮的表单。 select编辑并提交表单后,它会发布到服务器,我可以更改查询,以便它按复选框值进行过滤。
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 规则,只需 select 一个框并点击提交一切正常,但如果我打开 javascript 我点击 link - 表单提交,但不更改值。似乎提交速度比更改速度更快,所以值没有更改和发送。
有人吗?谢谢!
您应该对复选框使用 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();
});
});
您是否在表单提交事件中执行任何其他功能?通常情况下,表单可以像这样点击复选框提交
$('#checkbox').click(function() {
if(this.checked) {//just for checking
//Then trigger the form submit event
$("#form").trigger('submit');
}
else{
//do else.
}
});
好吧,这让我发疯,但我解决了它。我以某种方式认为有一个 jquery 错误,就像我提交之前没有选中复选框一样。事实并非如此,问题出在我的 PHP.
jQuery submit()
函数不发送提交按钮的值。在我的 PHP 代码中,我检查了是否设置了提交按钮,在我看来总是如此,但现在不是了。所以 if (!empty($_POST['submit-btn'])) {
是假的,我的脚本停止工作了。
谢谢大家
我有一个带有复选框和末尾提交按钮的表单。 select编辑并提交表单后,它会发布到服务器,我可以更改查询,以便它按复选框值进行过滤。
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 规则,只需 select 一个框并点击提交一切正常,但如果我打开 javascript 我点击 link - 表单提交,但不更改值。似乎提交速度比更改速度更快,所以值没有更改和发送。
有人吗?谢谢!
您应该对复选框使用 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();
});
});
您是否在表单提交事件中执行任何其他功能?通常情况下,表单可以像这样点击复选框提交
$('#checkbox').click(function() {
if(this.checked) {//just for checking
//Then trigger the form submit event
$("#form").trigger('submit');
}
else{
//do else.
}
});
好吧,这让我发疯,但我解决了它。我以某种方式认为有一个 jquery 错误,就像我提交之前没有选中复选框一样。事实并非如此,问题出在我的 PHP.
jQuery submit()
函数不发送提交按钮的值。在我的 PHP 代码中,我检查了是否设置了提交按钮,在我看来总是如此,但现在不是了。所以 if (!empty($_POST['submit-btn'])) {
是假的,我的脚本停止工作了。
谢谢大家