jQuery的添加自定义的验证

问题描述:

我有以下几点:jQuery的添加自定义的验证

$('#qForm').validate({ 
    rules: { 

       answerYesNo_1: { required:true } , 

       answerYesNoText_1: { required: function(element) { 
             return $('#answerYesNo_1').val() == 'yes'; 
             } 
       , isMoney: true }, 
       answerYesNo_2: { required:true } , 

       answerYesNoText_2: { required: function(element) { 
             return $('#answerYesNo_2').val() == 'yes'; 
             } 
       , isMoney: true }, 
       answerYesNo_3: { required:true } , 

       answerYesNoText_3: { required: function(element) { 
             return $('#answerYesNo_3').val() == 'yes'; 
             } 
       , isMoney: true }, 
       answerYesNo_4: { required:true } , 

       answerYesNoText_4: { required: function(element) { 
             return $('#answerYesNo_4').val() == 'yes'; 
             } 
       , isMoney: true }, 
       answerYesNo_5: { required:true } , 

       answerYesNoText_5: { required: function(element) { 
             return $('#answerYesNo_5').val() == 'yes'; 
             } 
       , isMoney: true }  
    }, 
... 


    jQuery.validator.addMethod("isMoney", function(value, element) { 
    alert(/^\$?[0-9][0-9\,]*(\.\d{1,2})?$|^\$?[\.]([\d][\d]?)$/.test(value));           
    return /^\$?[0-9][0-9\,]*(\.\d{1,2})?$|^\$?[\.]([\d][\d]?)$/.test(value); 

}); 

我已经是它忽略了所需要的功能的第一部分的问题:

return $('#answerYesNo_1').val() == 'yes' 

说:我选择“不” answerYesNo_2,回答YesNo_3,回答YesNo_4,回答YesNo_5,我会为他们中的每一个获得假。如果答案是否定的,则不应该进行isMoney验证。任何帮助?

+0

http://jsfiddle.net/k45w9/ – CFNinja

试试这个:

$.validator.addMethod("isMoney", function (value, element) { 
    alert(/^\$?[0-9][0-9\,]*(\.\d{1,2})?$|^\$?[\.]([\d][\d]?)$/.test(value)); 
    return /^\$?[0-9][0-9\,]*(\.\d{1,2})?$|^\$?[\.]([\d][\d]?)$/.test(value); 
}); 
$.validator.addMethod(
    'equalToParam', 
    function (value, element, param) { 
     return $.trim(value) == param; 
    }, 
    'Do not match.' 
); 
$('#qForm').validate({ 
    rules: { 
     answerYesNo_1: { 
      required: true, 
      equalToParam: 'yes' 
     }, 
     answerYesNoText_1: { 
      required: true, 
      isMoney: true 
     }, 
     answerYesNo_2: { 
      required: true 
     }, 
     answerYesNoText_2: { 
      required: true, 
      equalToParam: 'yes' 
      isMoney: true 
     }, 
     answerYesNo_3: { 
      required: true 
     }, 
     answerYesNoText_3: { 
      required: true, 
      equalToParam: 'yes' 
      isMoney: true 
     }, 
     answerYesNo_4: { 
      required: true 
     }, 
     answerYesNoText_4: { 
      required: true, 
      equalToParam: 'yes' 
      isMoney: true 
     }, 
     answerYesNo_5: { 
      required: true 
     }, 
     answerYesNoText_5: { 
      required: true, 
      equalToParam: 'yes' 
      isMoney: true 
     } 
    }, 

在接下来的时间,或者如果我的一段代码不行就http://jsfiddle.net/

+0

这不演示工作。 jsFiddle是在评论部分的原始文章后面添加的。谢谢 – CFNinja