我有以下用于在我的网站上提交表单:
<a onclick="document.forms['REGform'].submit(); return false;" class="button" href="javascript:;">Register</a>
我在表单中输入了所需的标签,但这似乎没有解雇它们?含义不会停止提交空输入。
如果我使用正常的提交按钮,它可以正常工作 - 是不是在html5中提交表单的公认方式?
答案 0 :(得分:5)
您可以这样做
<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;
}
}
答案 1 :(得分:3)
问题是submit()
方法,而不是onclick
的使用(如果您想使用JS而不是HTML提交,则无法避免使用前者)。
使用JS提交会导致跳过表单的验证步骤(尽管您可以在JS中重新实现它们(使用checkValidity()
)。
在调用时,submit()方法必须从表单元素本身提交表单元素,并设置了scripted-submit标志。
- http://www.w3.org/TR/html5/forms.html#dom-form-submit
如果未设置scripted-submit标志,并且提交者元素的无验证状态为false,则以交互方式验证表单的约束并检查结果:如果结果为负(约束验证结论为无效)字段,并可能告知用户这个)然后中止这些步骤。
- http://www.w3.org/TR/html5/association-of-controls-and-forms.html#form-submission-algorithm
答案 2 :(得分:-4)
<a class="button" href="javascript:document.forms['REGform'].submit(); return false;">Register</a>
或
<a onclick="document.forms['REGform'].submit(); return false;" class="button">Register</a>