JavaScript提交表单不包括字段

Vic*_*748 8 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>
Run Code Online (Sandbox Code Playgroud)

我需要使用JavaScript提交它,但我想dontSubmitThisField从请求中排除该字段.有没有办法在没有Ajax的情况下做到这一点?

Kis*_*han 7

只需禁用该字段.

如果用户无法更新该字段,请通过HTML执行此操作:http://www.w3schools.com/tags/att_input_disabled.asp

或者通过提交事件的jQuery来做:

$('#myForm').submit(function(){
    $('input[name="dontSubmitThisField"]').prop('disabled', true);
});
Run Code Online (Sandbox Code Playgroud)


pla*_*alx 5

禁用的字段或没有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;
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

然后,您可以执行以下操作:

<input type="text" name="dontSubmitThisField" data-no-submit>
Run Code Online (Sandbox Code Playgroud)