JavaScript提交表单不包括字段

时间:2014-10-24 19:10:31

标签: javascript forms submit

我有一个简单的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的情况下做到这一点?

6 个答案:

答案 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" 即可。 这会将字段完全分配给不同的表单,因此不会提交。