有没有我可以听的事件发生在表单提交之后,并且在表单通过HTML5验证之后
Is there an event I can listent to that takes place after a form submit and after the form has been verified with HTML5?
我有这个表格:
<div id="account-form">
<form action="/Account/Login" id="login-form" class="form" method="post">
<div id="input-fields">
<div>
<input class="data-entry medium-margin" id="UserName" name="UserName" placeholder="Username (or guest)" required="required " size="25" type="text" value="">
</div>
<div>
<input class="data-entry medium-margin" id="Password" name="Password" placeholder="Password (or guest)" required="required " size="25" type="password">
</div>
<div>
<input class="data-entry inline-checkbox" id="RememberMe" name="RememberMe" type="checkbox" value="true"><input name="RememberMe" type="hidden" value="false">
<p style="margin-top: 0;">Remember me?</p>
</div>
</div>
<button class="data-entry medium" id="login" type="submit">Login</button>
<button class="data-entry medium" id="register" type="button" onclick="location.href='/Account/Register'">Register</button>
</form>
</div>
以及此 JavaScript 在表单提交后禁用输入。
<script type="text/javascript">
(function() {
document.getElementsByClassName('form')[0]
.addEventListener("submit", function () {
var inputs = document.getElementsByClassName("data-entry");
for (i = 0; i < inputs.length; i++) {
inputs[i].disabled = true;
}
})();
</script>
当我输入登录数据,然后单击提交时,输入被禁用,提交验证失败,说明输入字段未填写。
有什么方法可以在HTML5验证后禁用输入字段吗?
只需安排超时为 0 的回调
.addEventListener("submit", function () {
setTimeout(function() {
var inputs = document.getElementsByClassName("data-entry");
for (i = 0; i < inputs.length; i++) {
inputs[i].disabled = true;
}
}, 0); });
这样,一旦submit
事件处理完成,将执行禁用代码。但是,您必须重新启用这些字段,以防验证失败,否则用户将无法更正问题。
相关文章:
- 在post-expressjs之后持久化表单数据
- 动态jQuery不在.append()之后发布表单的添加输入
- 在表单提交将DOM的一部分替换为分部之后,我应该将ajax成功绑定到什么来使我的javascript工作
- Laravel:在玩了Ajax之后,我在表单中的所有按钮都发布到了同一个url
- 试图在表单post之后使用jQuery.post()重定向用户
- 无法在 jquery.html() 之后将表单提交到 jquery ui 对话框中
- 有没有我可以听的事件发生在表单提交之后,并且在表单通过HTML5验证之后
- 值通过表单提交,然后即使在提交并显示值之后,也会以表单显示已提交的值
- 在元素之后重置表单
- 如何在表单中的每个输入/新行之后添加
标签 - 如何在window.location.replace.之后保持相同的表单
- IE9在302之后重新提交表单-可能是由于递归setTimeout()调用
- 表单提交甚至在返回false jquery之后
- 当我禁用提交按钮(在表单提交之后)时,页面不会加载
- 关注引导浮动模态表单上自定义文本之后的文本区域
- 在第一部分完成ajax之后加载表单的第二部分
- 在只调用了一次函数return false之后,表单并没有进行提交
- 表单提交是提交一次,之后每次加倍
- Javascript防止在n utf8字符之后写入表单元素
- 在提交表单之前,Javascript在X字符之后删除