我有一张表格:
<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>当我输入登录数据,然后单击submit,输入将被禁用,提交验证失败,说明输入字段没有填写。
有什么方法可以在HTML5验证之后禁用输入字段吗?
发布于 2013-10-26 08:27:50
只需调度超时为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事件处理完成,将执行禁用代码。但是,您必须重新启用字段,以防验证失败,否则用户将无法更正问题。
https://stackoverflow.com/questions/19604544
复制相似问题