首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在表单提交之后,以及在使用HTML5验证表单之后,是否有我可以听到的事件?

在表单提交之后,以及在使用HTML5验证表单之后,是否有我可以听到的事件?
EN

Stack Overflow用户
提问于 2013-10-26 08:18:42
回答 1查看 70关注 0票数 0

我有一张表格:

代码语言:javascript
复制
   <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,它在表单提交后禁用输入。

代码语言: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验证之后禁用输入字段吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-26 08:27:50

只需调度超时为0的回调即可。

代码语言:javascript
复制
.addEventListener("submit", function () {
    setTimeout(function() {
        var inputs = document.getElementsByClassName("data-entry");
        for (i = 0; i < inputs.length; i++) {
            inputs[i].disabled = true;
        }
    }, 0); });

这样,一旦submit事件处理完成,将执行禁用代码。但是,您必须重新启用字段,以防验证失败,否则用户将无法更正问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19604544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档