0

我不想在我的表单上按下“提交”按钮时执行提交操作,而是执行一些数据操作,然后使用 javascript 提交表单form.submit- 因此我不使用<input type="submit">表单中的元素:

<form action="process.php" method="post" name="myForm">
    <input type="text" name="entry" id="entry" required />
    <input type="button" value="Submit" onclick="manipulate_and_submit(this.form, this.form.entry);" />
</form>

脚本类似于:

function manipulate_and_submit(form, entry) {
    var val = entry.value;
    var hidden = document.createElement("input");
    form.appendChild(hidden);
    hidden.type = "hidden";
    hidden.name = "m";
    hidden.value = generate_other_value(val);
    entry.value = "";
    form.submit();
}

但在提交之前,我想验证表单的条目和其他元素 - 我可以手动执行该操作。但是 HTML5 为我们提供了所需的和许多其他属性 - 我怎样才能简单地集成它们?有没有类似的东西form.isValid()?谷歌搜索“验证 javascript html 表单”只是为我提供了处理来自“ye olde times”的 javascript 中手动验证的示例......

4

1 回答 1

2

您可以使用checkValidity,这是由 提供的一种方法HTMLFormElement。在您的示例中,它将类似于if ( !form.checkValidity() ) { code here }. 来自 MDN:

[checkValidity] 如果受约束验证的所有控件都满足它们的约束,则返回 true;如果某些控件不满足它们的约束,则返回 false。在任何不满足其约束的控件上触发一个名为 invalid 的事件;如果事件未取消,则此类控制被视为无效。

资源

如上所述,它还会invalid在每个无效表单项上触发一个事件。然后你可以让你自己的处理程序显示无效,就像这个答案中描述的那样

于 2013-10-27T02:54:29.083 回答