我有以下用于在我的网站上提交表单:
<a onclick="document.forms['REGform'].submit(); return false;" class="button" href="javascript:;">Register</a>
Run Code Online (Sandbox Code Playgroud)
我在表单中输入了所需的标签,但这似乎没有解雇它们?含义不会停止提交的空输入.
如果我使用正常的提交按钮,顺便说一下工作正好 - 是不是在html5中提交表单的公认方式?
问题是submit()方法,而不是方法的使用onclick(尽管如果您要使用JS而不是HTML提交,则无法避免使用前者)。
使用JS提交会导致跳过表单的验证步骤(尽管您可以在JS中使用来重新实现它们checkValidity())。
调用submit()方法时,必须从设置了脚本提交标志的表单元素本身提交表单元素。
— http://www.w3.org/TR/html5/forms.html#dom-form-submit
如果未设置脚本提交标志,并且submitter元素的no-validate状态为false,则以交互方式验证表单的约束并检查结果:如果结果为负(约束验证得出的结论是存在无效字段,并且可能通知用户),然后中止这些步骤。
— http://www.w3.org/TR/html5/association-of-controls-and-forms.html#form-submission-algorithm
这是你可以做的
<a onclick="CheckValidation();" class="button" href="javascript:;">Register</a>
function CheckValidation()
{
var isValidForm = document.forms['REGform'].checkValidity();
if (isValidForm)
{
document.forms['REGform'].submit();
}
else
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8688 次 |
| 最近记录: |