[英]I want to have a javascript function run only after HTML5 form input has been validated
[英]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
事件处理完成,将执行禁用代码。 但是,如果验证失败,则必须重新启用字段,否则用户将无法纠正问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.