我有一个简单的html表单:
<form action="test" method="post" id="myForm">
<input type="text" name="myTextField">
<input type="text" name="myTextField2">
<input type="text" name="dontSubmitThisField">
</form>
我需要使用JavaScript提交,但我想从请求中排除dontSubmitThisField
字段。有没有办法在没有Ajax的情况下做到这一点?
答案 0 :(得分:6)
只需禁用该字段。
如果用户无法更新该字段,则可以通过HTML进行操作:http://www.w3schools.com/tags/att_input_disabled.asp
或者通过提交事件的jQuery进行:
$('#myForm').submit(function(){
$('input[name="dontSubmitThisField"]').prop('disabled', true);
});
答案 1 :(得分:3)
没有name
属性的已禁用字段或字段将无法提交。
但是,如果您想以某种方式命名字段并且不想预先禁用它们,则可以拦截所有表单提交并禁用具有data-no-submit
属性的每个字段。
document.addEventListener('submit', function (e) {
if (!e.defaultPrevented) {
[].forEach.call(e.target.querySelectorAll('[data-no-submit]'), function (field) {
field.disabled = true;
});
}
});
然后你可以这样做:
<input type="text" name="dontSubmitThisField" data-no-submit>
答案 2 :(得分:2)
为什么要收集不需要的信息?
无论如何,如果你删除该字段的名称,它将不会POST
答案 3 :(得分:1)
您可以禁用该字段,它不会包含在后变量中。 Disabled form fields are not submitting data
答案 4 :(得分:1)
使用JavaScript myForm.submit();
提交表单要排除该字段,请删除该名称。如果由于某种原因需要引用该字段,您可以保留ID。或者 - 您可以在服务器端完全忽略该字段。
答案 5 :(得分:1)
只需在输入中添加 form="nosubmit" 即可。 这会将字段完全分配给不同的表单,因此不会提交。