单击按钮时手动触发HTML验证

Manually trigger HTML validation on button click

本文关键字:HTML 验证 按钮 单击      更新时间:2023-09-26

我正在尝试在单击按钮时处理表单验证。它正在验证表单,但没有显示错误。

有人能帮我吗?

<form id="the-form" action="#">
    <input type="text" required="required" placeholder="Required text" />
    <input type="email" required="required" placeholder="email" />
    <button id="btn" type="button">Submit</button>
</form>

JavaScript:

$("#btn").on("click", function(){
    if($("#the-form")[0].checkValidity())
    {
        alert('validated');
    }
    else
    {
        //show errors
        return false;
    }
});

http://jsfiddle.net/5ycZz/

尝试

reportValidity()

所以你会有

$("#btn").on("click", function(){
    if($("#the-form")[0].checkValidity()) {
        alert('validated');
    }
    else {
        $("#the-form")[0].reportValidity();
    }
});

我通过以下步骤实现了这一点:

1) 我有表格:

<form>
    <textarea required></textarea>
    <input type="submit" style="display:none;"/>
</form>
<a>Some other button to trigger event</a>

2) 现在我们必须检查表格是否填写正确:

//this is <a> click event:
if (!$('form')[0].checkValidity()) {
    $('form').find('input[type="submit"]').click();
    return false;
}

这将触发表单发送,但由于存在错误而不会发送;)

似乎在输入[type="submit"]点击时显示了html5验证错误:)

希望对你也有用!:)

这里是的完美答案

<form id="the-form" action="#">
<input type="text" required="required" placeholder="Required text" />
<input type="email" required="required" placeholder="email" />
<button id="btn" type="submit">Submit</button>

$("#btn").on("click", function(){
if($("#the-form")[0].checkValidity())
{
    alert('validated');
}
else
{
  return 0;
}

});

删除else语句。(更新)

$("#btn").on("click", function(){
if($("#the-form")[0].checkValidity())
{
    alert('validated'); //will appear if name and email are of valid formats
}
});

您应该能够简单地添加onclick="return validateForm()"。

<button id="btn" onclick="return validateForm()" type="button">Submit</button>