javascript - 表单数据和复选框

标签 javascript

目前在创建FormData对象时,会添加值为“on”的选中复选框,而未选中的复选框则根本不会通过。

我是否必须破解一些隐藏的输入才能正确设置复选框,或者我是否可以使用 FormData 进行一些自定义或预处理?

我希望选中的复选框为 1,未选中的复选框为 0。我自己已经可以做到这一点(即丑陋的技巧),但我看不到 FormData 的任何 native 方式。

form.addEventListener("submit", function(e) {
  e.preventDefault();
  const data = new FormData(form);
  for (const [name,value] of data) {
    console.log(name, ":", value)
  }
})
<form id="form">
     <input name="normal" type="text" value='example' />
     <input id="inpt" name="on" type="checkbox" />
     <label for="inpt">on</label>
     <br /><button type="submit">submit</button>
</form>

最佳答案

Currently when creating a FormData object, a checked checkbox is added with a value of "on", and an unchecked checkbox is not passed at all.

on 仅在复选框缺少 value 属性时使用

Do I have to hack in some hidden inputs to properly set checkboxes

没有。 正确处理复选框。自从将表单元素添加到 HTML 以来,这就是它们在表单中的工作方式。

在处理它的代码中测试是否存在复选框。

关于javascript - 表单数据和复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33487360/

相关文章:

javascript - 使用 jQuery 选择后如何删除 <select> 选项?

javascript - 单击后显示工具提示,而不是悬停时显示工具提示

javascript - 正则表达式阻止所有特殊字符

动态缩放容器中的 Javascript 代码编辑器

javascript - 自定义X-editable(AngularJS)的取消代码按钮

javascript - 无法使用 jQuery 删除每个文章 div 的描述中的部分文本

javascript - react componentsDidUpdate 与 SetState 回调

javascript - 将 mustache.js 部分与 express 结合使用

javascript - 使用 CSS 将单行文本放入单独的框中

javascript - 每隔几秒更新一次div