如何在jquery验证器插件中使用条件验证到我的表单

时间:2011-08-29 05:24:10

标签: javascript jquery jquery-validate

当我从下拉框中选择一个类型时,表单字段正在改变。 更改意味着隐藏或显示,因此根据表单字段隐藏和显示的下拉值,我需要将j查询验证插件添加到此表单,

我有一个输入

<div class="form-item">
                                                        <div class="catergory-inputs">
                                                            <input name="address" type="text" class="textarea_medium"
                                                                id="Address" value="<?php echo $address['value'] ; ?>" />
                                                        </div>
                                                    </div>

我验证了这个

 var x=$("#contactinfo").validate({
            rules: {

                address: {
                    required: true,
                    minlength: 3,
                    maxlength: 50,
                    lettersonly: true                   
               },
 },

            messages: {

                address: {
                    required: "Enter your Address",
                    minlength: "At least 3 characters long"
                },
            }
        }); 

如果只隐藏此字段,我想验证此字段。像这样

 var x=$("#contactinfo").validate({
            rules: {
                if(not hiding) {
                address: {
                    required: true,
                    minlength: 3,
                    maxlength: 50,
                    lettersonly: true
                   } 
               },
 },

            messages: {
                if(not hiding) {
                address: {
                    required: "Enter your Address",
                    minlength: "At least 3 characters long"
                  } 
                },
            }
        }); 

我怎么能这样做,我在堆栈溢出中看到了类似的问题。但那里的问题没有答案,plz帮助我................... .......... :(

2 个答案:

答案 0 :(得分:2)

我认为你可以使用可见选择器。

http://api.jquery.com/visible-selector/

这是未经测试但是;

var x=$("#contactinfo:visible").validate({

顺便说一下,使用验证插件时,您可以这样做;

<input type=text class="required" id="txtName"/>

然后当你调用validate()方法时,如果文本框被隐藏,它将不会被验证。诀窍是将“必需”类添加到类属性

答案 1 :(得分:1)

我想有条件地验证用户名字段以确保它不在数据库中,但仅限于创建新用户。因此,在创建新内容时,我放置了一个javascript变量var newUser=true;,否则编辑现有用户var newUser=false;

然后在我的规则部分验证中,我放了required: (newUser)?true:false

这会导致验证仅在新用户为true时验证用户名字段。如果我们加载了现有用户,那么只需在PHP代码中添加javascript var,规则的required部分就会具有值false

请记住,您可以将javascript放入json对象中。因为这都是javascript!

这些是我在学习验证时使用的资源:http://www.ferdychristant.com/blog//articles/DOMM-7LZJN7 //详细说明如何真正使用验证的文章。 http://www.ferdychristant.com/blog//pages/jQuery%20validation%20code http://randomactsofcoding.blogspot.com/2008/10/starting-with-jquery-how-to-write.html http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression

http://docs.jquery.com/Plugins/Validation中只有一个惊人的信息深度...你只需要点击它就可以了!