表单提交时的额外表单数据

时间:2015-06-03 06:40:15

标签: javascript jquery html

一些复选框(已由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是alerady检查。在表单提交之前,我取消选中a和b并检查c和d。但是当表单提交时,我有a,b,c和d。实际上,我应该只得到c和d。

我使用ASP。当我在服务器上捕获它们时,会出现以下结果。

name = Request.Form("name") ' name = "a, b, c, d"

当我删除这个“$('。复选框[data-img = a]')时,点击();”,它运作良好。

name = Request.Form("name") ' name = "c, d"

我不知道为什么会这样?有人请解释一下。感谢。

1 个答案:

答案 0 :(得分:2)

您的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()功能,请使用以下行代码&#34; a&#34; &安培;已检查&#34; b&#34;

$('.checkbox[data-img=a]').prop('checked',true);
$('.checkbox[data-img=b]').prop('checked',true);