JavaScript提交表单,不包括字段

JavaScript提交表单,不包括字段,javascript,forms,submit,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> 我需要用JavaS

我有一个简单的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有没有办法做到这一点?

为什么要收集不需要的信息


无论如何,如果删除字段的名称,它将不会发布

,您可以禁用该字段,并且它不会包含在POST VAR中。

要使用JavaScript提交表单,请使用
myForm.submit()
要排除该字段,请删除该名称。如果出于某种原因需要引用字段,可以保留ID。或者-您可以完全忽略服务器端的字段。

只需禁用该字段

如果用户无法更新字段,请通过HTML执行此操作:

或者通过jQuery在提交时执行此操作:

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

禁用的字段或没有
名称
属性的字段将不会提交

但是,如果您想命名字段,但不想预先禁用它们,则可以截取所有表单提交,并禁用每个具有
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>


disabledhtml属性将执行您想要的操作,这不是因为您不向服务器发送不需要收集的信息。考虑一个密码更改表单。您将有一个不必发送的passwordConfirmation字段。