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