阻止提交表单中的输入字段

2022-08-30 04:06:40

我正在编写一些javascript(greasemonkey/userscript),它将在网站上的表单中插入一些输入字段。

问题是,我不希望这些输入字段以任何方式影响表单,我不希望它们在表单提交时被提交,我只希望我的javascript可以访问它们的值。

有没有办法在表单中间添加一些输入字段,而不是在提交表单时提交它们?

显然,理想的情况是输入字段不在表单元素中,但我希望生成的页面的布局使插入的输入字段显示在原始表单的元素之间。


答案 1

您可以插入不带“name”属性的输入字段:

<input type="text" id="in-between" />

或者,您可以在提交表单后简单地删除它们(在):jQuery

$("form").submit(function() {
   $(this).children('#in-between').remove();
});

答案 2

最简单的方法是插入带有属性的元素。disabled

<input type="hidden" name="not_gonna_submit" disabled="disabled" value="invisible" />

这样,您仍然可以将它们作为表单的子级进行访问。

禁用字段的缺点是用户根本无法与它们交互 - 因此,如果您有文本字段,则用户无法选择文本。如果您有复选框,则用户无法更改其状态。disableddisabled

您还可以编写一些javascript来触发表单提交,以删除您不想提交的字段。