【问题标题】:How to validate ajax form with onclick event on submit by jquery?如何通过 jquery 提交时使用 onclick 事件验证 ajax 表单?
【发布时间】:2017-11-04 16:25:29
【问题描述】:

我有一个简单的域名 whois 表单:

<form id="domaincheck" class="form-inline ltr" method="post">
    <input type="text" class="form-control center input-md" name="sld" id="sld" placeholder="pleade enter domain name" required>
    <select class="form-control ltr input-md input-group-addon" id="tld" name="tld" multiple="multiple">
        <option value="com" selected="">.com</option>
        <option value="ir">.ir</option>
        <option value="net">.net</option>
        <option value="org">.org</option>
        <option value="co">.co</option>
        <option value="xyz">.xyz</option>
        <option value="biz">.biz</option>
        <option value="info">.info</option>
        <option value="asia">.asia</option>
        <option value="us">.us</option>
        <option value="mobi">.mobi</option>
        <option value="name">.name</option>
    </select>
    <button type="button" class="btn btn-info" onclick="get_whois()">check!</button>
</form>

并使用jquery validation plugin 进行验证。 我已添加此代码来验证输入以设置最小字符必须为 4。

$("#domaincheck").validate({
    rules: {
        sld: {
            required: true,
            minlength: 4
        }
    },
    messages: {
        sld: {
            required: "Please input domain name!",
            minlength: jQuery.validator.format("Please, at least {0} characters are necessary")
        }
    }
});

现在如何禁用具有 onclick 事件的按钮以避免在输入有效之前发送请求。 并添加规则以说明仅这些字符( a-z A-z 和 "-" )在输入中是有效的。

有什么帮助吗?

谢谢

【问题讨论】:

    标签: javascript jquery ajax forms validation


    【解决方案1】:

    Click Here For Demo JSFiddle

    $.validator.addMethod("sldRegex", function(value, element) {
                return this.optional(element) || /^[A-Za-z\-]+$/i.test(value);
    }, "Username must contain only letters, numbers, or dashes.");
    $("#domaincheck").validate({
            rules: {
                sld: {
                    required: true,
                    minlength: 4,
                    sldRegex: true
                }
            },
            messages: {
                sld: {
                    required: "Please input domain name!",
                    minlength: jQuery.validator.format("Please, at least {0} characters are necessary")
                }
            }
            ,submitHandler: function(form) {
    
                        form.submit() ; 
                    }
        });
    

    【讨论】:

    • 谢谢,但我必须使用 type="button" 作为按钮,这是一个通过 onclick 事件调用请求的 ajax 表单。单击 onclick 事件发送请求后立即。还为按钮提交类型重定向和刷新页面。
    • 所以你可以把你的ajax请求放在submitHandler中:function(form) { //code here }
    • 谢谢。干得好!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    相关资源
    最近更新 更多