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

标签 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 已经过检查。在提交表单之前,我会取消选中 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/

相关文章:

javascript - Jquery Mobile 不透明度不起作用 :(

javascript - 对 API POST 使用 .done 和 .fail

javascript - 在使用 `each()` 迭代时调用delay() ?

javascript - 没有 anchor 的可点击链接

javascript - 突出显示文本并更改颜色

javascript - JavaScript 中的循环出错?

javascript - 2 个表的相同搜索过滤器

javascript - 带 Subnav 的水平 CSS 菜单 - 设置事件选项卡

javascript - Laravel 5 jquery可扩展div

HTML:在移动指针之前更改默认光标不起作用