2012-06-21 3 views
0

유효성 검사를위한 새로운 요구 사항이 있습니다.이를 수행하는 가장 좋은 방법을 고민하고 있습니다.jQuery 유효성 검사 플러그인 - addMethod 중 하나 또는 유효성 확인

필드에 이메일 주소 또는 사용자 이름이 있습니다.

사용자가 전자 메일을 입력하면 전자 메일 유효성 검사 (기본 제공 방법)가 실행되고 그렇지 않으면 유효성 검사에 기본 구두점이있는 문자가 필요하다는 요구 사항이 있습니다.

그래서 @를 입력하면 전자 메일 검증을 실행합니다. 그렇지 않으면 기본 구두점이있는 문자를 실행합니다. 그러나 가능한 다른 접근 방법에 대한 입력을 찾고 있습니다.

또한이 시나리오에서/else를 사용하면 두 부분 유효성 검사를 코딩하면 어떻겠습니까?

+0

엡 도움이되기를 바랍니다 사용자 이름). – Qtax

+0

@ Qtax - 예, @는 사용자 이름에 허용되지 않습니다. 그래서 funcCall을 수행하고 @를 확인하고 각 유효성 검사를 실행해야한다고 가정합니다 ... – Jason

답변

1
$("#frm").validate({ 
      rules: { 
       username: { 
        required: true, 
        usernameemail: true, 
        maxlength: 100 
       } 
      } 
    }); 

    $.validator.addMethod("usernameemail", function(value, element) { 
     if (this.optional(element)) // return true on optional element 
      return true; 
     valid = true; 

     if (value.indexOf("@") > 0) { 
      valid = valid && $.validator.methods.email.call(this, value, element); 
     } else { 
      valid = valid && $.validator.methods.username.call(this, value, element); 
     } 
     return valid; 
    }, 'Please provide a valid username or email'); 

    $.validator.addMethod("username", function(value, element) { 
     return this.optional(element) || /^[a-z0-9\-]+$/i.test(value); 
    }, "Username must contain only letters, numbers, or dashes."); 

당신은, 당신이 필요로 이름 정규식을 변경해야이이만큼 그것이 허용되지 것 같이 (이메일 주소 필요 이후 @는`유효`검사,

관련 문제