2012-08-31 46 views
1

我使用jQuery的驗證插件現在有一些問題的。substitut在jQuery的equalTo()方法驗證

我的HTML:

<div class="card"> 
    <div class="item"> 
     <span class="label"><b class="red">*</b>CardNo:</span> 
     <input class="BankCardNo" name="BankCardNo" type="text" value=""/> 
    </div> 
    <div class="item"> 
     <span class="label"><b class="red">*</b>Confirm CardNo:</span> 
     <input class="ConfirmCardNo" name="ConfirmCardNo" type="text" value=""/> 
    </div> 
</div> 
<div class="card"> 
    <div class="item"> 
     <span class="label"><b class="red">*</b>CardNo:</span> 
     <input class="BankCardNo" name="BankCardNo" type="text" value=""/> 
    </div> 
    <div class="item"> 
     <span class="label"><b class="red">*</b>Confirm CardNo:</span> 
     <input class="ConfirmCardNo" name="ConfirmCardNo" type="text" value=""/> 
    </div> 
</div> 

我正在銀行卡管理頁。一次可以添加多張卡片。
我要盡一切卡單獨驗證, 但equalTo方法只接受元素ID,姓名,ATTR

$("#myForm").validate({ 
    rules: { 
    "Password": { 
     required: true, 
    }, 

    "ConfirmPassword": { 
     required: true 
     equalTo: '#Password' 
    } 
    }, 

    errorElement: "div" 
}); 

這樣,這是驗證插件添加規則,這是非常漂亮的。
所以我只是想要這樣的所有驗證碼。 這是主要問題。

如果我寫的代碼類似下面,它無法找到正確的CardNo ......

$('.card').find('.ConfirmCardNo').rules('add', { 
    required: true, 
    equalTo: '.CardNo' 
}); 

我如何實現我的目的是什麼?

+0

你試過了什麼 – rahul

+0

我也只有這樣,圖像是寫一個特定的方法來驗證卡,但我只想讓驗證使用一個插件,使用jquery.validate – Mithril

+0

的格式如何新增多個規則 – rahul

回答

0

,你可以做這樣的

var $elems = $('.card'); 

(function fetch(i) { 
    if(i >= $elems.length) return; // no elems left 

    var $elem = $elems.eq(i); 

    $($elem).find('.ConfirmCardNo').rules('add',{ 
     required:true, 
     equalTo:$($elem).find('.CardNo') 
    }); 

    fetch(i + 1); // next one 

    })(0); // start with first elem 

,或者如果你希望只使用一個插件

您可以根據自己的價值觀,通過所有的卡div的循環,使規則

+0

如何循環是一個問題 – Mithril

+0

你怎麼在這裏添加多個conditons – rahul

+0

計算器爲什麼不能在評論框中添加代碼......看這裏http://jsfiddle.net/ZUfwk/ – Mithril

0

你可以試試這個,就像選擇器

$("#registerForm").validate({ 
    rules:{ 
     name:{ 
      required:true, 
      email:true 
     }, 
     password:{ 
      required:true, 
      minlength:6, 
      maxlength:12 
     }, 
     cfmPassword:{ 

      equalTo:$('#registerForm').find('#password'), 
      minlength:6, 
      maxlength:12 
     } 

    }, 
    errorPlacement: function(error, element) { 
     error.insertAfter(element.parent()); 
    } 
}); 
+0

請解釋你的代碼如何回答問題。 –

+0

當你想使用'equalTo'規則時,你必須找到目標越精確越好 – user3722893