一些复选框(它已经被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);

10-05 20:52
查看更多