我正在尝试使用 HTML5 客户端验证(即在表单内),但看不到如何以编程方式显示验证错误气泡。
考虑以下:
<form id="myForm">
<input type="text" id="number" min="1" max="10" step="3" required>
</form>
如果存在规范submit
按钮(即<input type="submit">
),并且存在验证错误,则用户代理将停止提交并向用户显示 UI:
但是,如果用户不是使用submit
输入,而是单击执行 javascript 的锚点(即 ASP.net Webforms):
<a href='javascript:SaveChanges()'>Save Quantity</a>
<script>
function SaveChanges()
{
var form = document.getElementById('myForm');
if (form === null) return;
if (!form.checkValidity())
{
//We reach here, but no UI is displayed
return;
}
form.submit();
</script>
问题是,虽然
form.checkValidity();
确实检查表单的有效性(false
如果它无效则返回),它不会触发 UI 显示。
现在我们有问题了。通过提交
<input type="submit">
工作(停止并显示 UI)<button type="submit>
工作(停止并显示 UI)form.submit
不起作用(不停止;不显示 UI)form.checkValidity()
不起作用(不显示 UI)
如何以编程方式显示 HTML5 客户端表单验证错误气泡?