一些复选框(它已经被 Jquery 选中。但我确实取消选中它们。)在表单提交中被发布以切断。但我没有检查过。请看下面。
这是javascirpt。
$('.checkbox').change(function(){
alert('hi');
});
$('.checkbox[data-img=a]').click();
$('.checkbox[data-img=b]').click();
这是 HTML。
<input type='checkbox' class='checkbox' data-img='a' value='a' name='name' />a
<input type='checkbox' class='checkbox' data-img='b' value='b' name='name' />b
<input type='checkbox' class='checkbox' data-img='c' value='c' name='name' />c
<input type='checkbox' class='checkbox' data-img='d' value='d' name='name' />d
我从 jquery 调用 cick 事件。因此,a 和 b 已经过检查。在提交表单之前,我会取消选中 a 和 b 并选中 c 和 d。但是当表单提交时,我得到了 a、b、c 和 d。实际上,我应该只得到 c 和 d。
我使用 ASP。当我在服务器上捕获它们时,会出现以下结果。
name = Request.Form("name") ' name = "a, b, c, d"
当我删除这个“$('.checkbox[data-img=a]').click();”时,它运行良好。
name = Request.Form("name") ' name = "c, d"
不知道为什么?有人请解释一下。谢谢。
最佳答案
您的 name
属性应该类似于 name[]
。应该是这样的
<input type='checkbox' class='checkbox' data-img='a' value='a' name='name[]' />a
<input type='checkbox' class='checkbox' data-img='b' value='b' name='name[]' />b
<input type='checkbox' class='checkbox' data-img='c' value='c' name='name[]' />c
<input type='checkbox' class='checkbox' data-img='d' value='d' name='name[]' />d
当您提交表单时,您将获得作为name
数组的复选框结果,您可以在后端对其进行处理。
编辑:
不要使用click()
函数,使用下面的行来使"a"& "b" 值已经被检查
$('.checkbox[data-img=a]').prop('checked',true);
$('.checkbox[data-img=b]').prop('checked',true);
关于javascript - 表单提交时的额外表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30612621/