【问题标题】:jquery validation for field with default value [duplicate]具有默认值的字段的jquery验证[重复]
【发布时间】:2014-11-19 12:29:16
【问题描述】:

http://jqueryvalidation.org/files/demo/

我正在使用上述插件对注册表单进行 jquery 验证

它工作正常,但在我的表单中有一个字段名称“域”,其默认值已设置为“www”。所以用户只需要写其他部分域。

所以实际上它在任何时候都不是空白的,所以它不会验证用户是否使用默认值留下了该文件,这是我的 jquery 和 html 代码

    <script>
$().ready(function() {

        $("#frm").validate({
            rules: {
                domain: "required",
                uname: "required",
                password:'required',
                cpassword:'required',
                fname:'required',
                lname:'required',
                bussname:'required',
                city:'required',
                state:'required',
                pincode:'required',
                country:'required',
                phone1:'required',
                email: {
                    required: true,
                    email: true
                },
                code:'required',


            },
            messages: {
                domain: "Please enter domain name",
                uname: "Please enter user name",
                password: "Please enter password",
                cpassword:'Please confirm password',
                fname:'Please enter first name',
                lname:'Please enter last name',
                bussname:'Please enter practice',
                city:'Please enter city',
                state:'Please enter state',
                pincode:'Please enter zip code',
                country:'Please select country',
                phone1:'Please enter phone',
                email: 'Please enter email address',
                code: 'Please enter security code',


            }
        });


    });
</script>

我的html表单

    <form name="frm" id="frm" action="ezregistration2.php" method="post">


<input name="domain" type="text" id="domain"  value="www."  size="40" class="tb7"   />



<input name="uname" type="text" id="uname" value="" size="40" class="tb7" onkeyup="countchars(this);" />


<input name="password" type="password" id="password"  size="40" class="tb7">

<input name="cpassword" type="password" id="cpassword"  size="40" class="tb7">


<input name="fname" type="text" id="fname" value="" size="40" class="tb7" >


<input name="lname" type="text" id="lname" value="" size="40" class="tb7" >


<input name="bussname" type="text" id="bussname" value="" size="40" class="tb7">


<input name="address1" type="text" id="address1" value="" size="40" class="tb7">




<input name="address2" type="text" id="address2" value="" size="40" class="tb7">


<input name="city" type="text" id="city" value="" size="40" class="tb7" >
                                                    <input name="state" type="text" id="state" value="" size="40" class="tb7" >


<input name="pincode" type="text" id="pincode" value="" size="40" class="tb7" >

<select name="country" id="country" class="tb7" style="width:225px;"> 
<option value="Afghanistan">Afghanistan</option></select>

<input type="text" name="phone1" size="40" id="phone1" value="" onkeypress="return noNumbers(event)" class="tb7">

<input name="email" type="text" id="email" value="" size="40" class="tb7">

<input type="text" name="code" id="code" size="8" class="tb7" style="width:100px" />

<input name="Submit" type="image" src="homeimages/submit.jpg" class="submitbtn" style="outline:none;" />


<input type="hidden" name="sub" value="1">
</form>

无论如何它不应该在验证时允许默认值?

【问题讨论】:

  • 寻找自定义验证:jQuery.validator.addMethod("domain", function(value, element) { return this.optional(element) || /^http:\/\/mycorporatedomain.com/.test(value); }, "Please specify the correct domain for your documents");
  • 不能在现有代码上完成?
  • 不要预先填写value。这就是 placeholder 属性的用途。还有一个名为url 的规则可用于验证 URL。见:jqueryvalidation.org/url-method
  • 最后,有一种方法可以保留value 属性,但您必须创建自定义方法。见:stackoverflow.com/q/2733922/594235

标签: jquery html jquery-validate


【解决方案1】:

$("#frm").validate({之前添加

jQuery.validator.addMethod("domain", function(value, element){ return this.optional(element) || value != "www."; }, "Please enter domain name");

并且在您的规则中将domain: "required", 更改为

domain: {
    required: true,
    domain: true
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 2014-11-22
    • 1970-01-01
    相关资源
    最近更新 更多