【问题标题】:Don't show the #loading if the <input> is empty如果 <input> 为空,则不显示#loading
【发布时间】:2014-01-21 00:53:35
【问题描述】:

演示 - jsfiddle.net/75CqW/

当有人点击提交按钮时,即使输入为空,它也会显示正在加载的 div。

如果用户没有在输入中写任何内容,我不希望用户看到#loading,我尝试在输入中添加“必需”但当输入为空时仍显示#loading .您认为我的加载 div 有什么问题? 提前致谢。

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    使用表单的提交处理程序代替点击处理程序 - 表单验证在表单提交时触发,而不是在提交按钮点击时触发

    $(function () {
        $("#myform").submit(function () {
            $("#controller").hide();
            $("#loading").show();
        });
    });
    

    演示:Fiddle

    注意:您可能希望阻止提交事件的默认操作,以便阻止默认表单提交 - 如果您使用 ajax 进行服务器端处理

    【讨论】:

    • 非常感谢阿伦。我很感激:)
    【解决方案2】:

    试试这个

    var id = $("#statusid").val();
    if (id.length == 0)
    {
        return false;
    }
    

    【讨论】:

    • 嗨,这个脚本不显示加载的 div,它会立即启动表单的操作。谢谢你:)
    • 如果您想让加载图像等到服务器响应到来,请尝试使用 ajax,然后在成功时隐藏图像。
    【解决方案3】:

    在触发处理代码之前,您需要在字段上测试值(或运行验证检查)

    $(function() {
        $(".submit").click(function() {
            if $('#statusid').val() {
                $("#controller").hide();
                $( "#loading" ).show();
            }
        });
    });
    

    【讨论】:

    • 你好,这个脚本没有显示加载的 div,它就像 user2310289 的一样立即开始表单的动作
    • 加载 DIV 不会显示,除非您将其更改为 ajax 查询,因为您的页面将始终被替换,加载 div 和所有典型的表单提交。使用 jquery 序列化表单有很简单的方法。 jquery 文档api.jquery.com/serializestackoverflow.com/questions/10398783/…
    猜你喜欢
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    相关资源
    最近更新 更多