2010-12-09 6 views
0

Comment appeler plusieurs fonctions de validation sur un seul champ dans jQuery.

comme ci-dessous

Validation multiple en ligne:

JobDayofWeek: {isValidJOW: true}, JobDayofWeek: {regex: «^[1-7] $ |^(\ s * [1 -7] + \ s *, \ s *) + [1-7] $ »},

var isValidJOW = function isJOWValid(value) { 
     var newTemp = getDataforNewTemplate(); 
     if (newTemp.AutoResubmitFlag == 'N' && value == '') { 
      return true; 
     } 
     else { 
      return false; 
     } 
    } 

$.validator.addMethod("isValidJOW", function (value, element) { 
     var newTemp = getDataforNewTemplate(); 
     return isValidJOW(newTemp.JobDayofWeek); 
    }, 'Job Day of Week Mandatory when auto resubmit flag is set to Y'); 

    $.validator.addMethod("regex", function (value, element, regexp) { 
     var check = false; 
     var re = new RegExp(regexp); 
     return this.optional(element) || re.test(value); 
    }, "The list of values 1(Sunday) to 7 (Saturday). For multiples enter the following 1,2,3..."); 


    $(document).ready(function() { 
     $("#maintTempForm").validate({ 
      rules: { 
       JobTypes: { isValidJobType: true }, 
       ExecutableName: { required: true }, 
       ExecutableType: { isValidJExecutableType: true }, 
       JobDayofWeek: { isValidJOW: true }, 
       JobDayofWeek: { regex: "^[1-7]$|^(\s*[1-7]+\s*,\s*)+[1-7]$" }, 
       JobFrequency: { regexJobFrequency: "^[1-365]$" }, 
       AutoResubmitFlag: { isValidFlag: true } 

      }, 
      messages: { 
       ExecutableName: "Please Enter Valid Executable Name" 

      } 
     }); 
    }); 

C'est toujours en train de valider que le premier.

Répondre

0

Les règles:

rules: { 
    //... 
    JobDayofWeek: { isValidJOW: true }, 
    JobDayofWeek: { regex: "^[1-7]$|^(\s*[1-7]+\s*,\s*)+[1-7]$" } 
    //... 
} 

sont juste un objet littéral et en tant que tels, ne peuvent pas avoir des valeurs multiples pour un seul champ. L'analyseur JavaScript utilisera uniquement l'une des valeurs JobDayofWeek lors de la construction du littéral, dont il utilisera probablement l'implémentation, mais peut-être pas. Que se passe-t-il avec ce jeu de règles?

rules: { 
    JobTypes: { isValidJobType: true }, 
    ExecutableName: { required: true }, 
    ExecutableType: { isValidJExecutableType: true }, 
    JobDayofWeek: { isValidJOW: true, regex: "^[1-7]$|^(\s*[1-7]+\s*,\s*)+[1-7]$" }, 
    JobFrequency: { regexJobFrequency: "^[1-365]$" }, 
    AutoResubmitFlag: { isValidFlag: true } 
}, 

Tout ce que je ne faisais que combiner les deux valeurs JobDayofWeek en un seul. Cela devrait fonctionner.

Questions connexes