JavaScript提交表单,不包括字段
我有一个简单的html表单: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
<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字段。