html不需要使用onclick

时间:2012-01-30 15:24:34

标签: javascript html5

我有以下用于在我的网站上提交表单:

<a onclick="document.forms['REGform'].submit(); return false;" class="button" href="javascript:;">Register</a>

我在表单中输入了所需的标签,但这似乎没有解雇它们?含义不会停止提交空输入。

如果我使用正常的提交按钮,它可以正常工作 - 是不是在html5中提交表单的公认方式?

3 个答案:

答案 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>