jQuery Validate W3C 콘텐츠

17162 단어 jQuery Validate
js 라이브러리 가져오기
<script src="../js/jquery.js" type="text/javascript"></script>

<script src="../js/jquery.validate.js" type="text/javascript"></script>


기본 검사 규칙
번호
규칙.
묘사
1
required:true
입력해야 하는 필드입니다.
2
remote:"check.php"
aax 방법으로 check를 호출합니다.php에서 입력값을 검증합니다.
3
email:true
올바른 형식의 e-메일을 입력해야 합니다.
4
url:true
올바른 형식의 웹 주소를 입력해야 합니다.
5
date:true
정확한 형식의 날짜를 입력해야 합니다.날짜 검사 i6 오류가 발생했습니다. 주의하십시오.
6
dateISO:true
올바른 형식의 날짜(ISO)를 입력해야 합니다(예: 2009-06-231998/01/22).형식만 검증하고 유효성은 검증하지 않습니다.
7
number:true
올바른 숫자(음수, 소수)를 입력해야 합니다.
8
digits:true
정수를 입력해야 합니다.
9
creditcard:
반드시 합법적인 신용카드 번호를 입력해야 한다.
10
equalTo:"#field"
입력한 값은 #field와 같아야 합니다.
11
accept:
올바른 접미사 이름을 가진 문자열(업로드 파일의 접미사)을 입력합니다.
12
maxlength:5
최대 5자 길이의 문자열을 입력하십시오.
13
minlength:10
입력 길이가 최소한 10인 문자열.
14
rangelength:[5,10]
5와 10 사이의 문자열을 입력해야 합니다. (한자는 문자로 계산됩니다.)
15
range:[5,10]
5에서 10 사이의 값을 입력해야 합니다.
16
max:5
입력 값은 5보다 클 수 없습니다.
17
min:10
입력 값은 10보다 작으면 안 됩니다.
기본 프롬프트
messages: {

    required: "This field is required.",

    remote: "Please fix this field.",

    email: "Please enter a valid email address.",

    url: "Please enter a valid URL.",

    date: "Please enter a valid date.",

    dateISO: "Please enter a valid date (ISO).",

    dateDE: "Bitte geben Sie ein gültiges Datum ein.",

    number: "Please enter a valid number.",

    numberDE: "Bitte geben Sie eine Nummer ein.",

    digits: "Please enter only digits",

    creditcard: "Please enter a valid credit card number.",

    equalTo: "Please enter the same value again.",

    accept: "Please enter a value with a valid extension.",

    maxlength: $.validator.format("Please enter no more than {0} characters."),

    minlength: $.validator.format("Please enter at least {0} characters."),

    rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),

    range: $.validator.format("Please enter a value between {0} and {1}."),

    max: $.validator.format("Please enter a value less than or equal to {0}."),

    min: $.validator.format("Please enter a value greater than or equal to {0}.")

},


수정이 필요한 경우 js 코드에 다음을 추가할 수 있습니다.
jQuery.extend(jQuery.validator.messages, {

    required: "    ",

	remote: "      ",

	email: "            ",

	url: "        ",

	date: "        ",

	dateISO: "         (ISO).",

	number: "        ",

	digits: "      ",

	creditcard: "          ",

	equalTo: "         ",

	accept: "              ",

	maxlength: jQuery.validator.format("            {0}     "),

	minlength: jQuery.validator.format("            {0}     "),

	rangelength: jQuery.validator.format("           {0}   {1}       "),

	range: jQuery.validator.format("        {0}   {1}     "),

	max: jQuery.validator.format("        {0}   "),

	min: jQuery.validator.format("        {0}   ")

});


이 파일을 메시지에 넣는 방법을 추천합니다.cn.js에서 페이지에 가져오기:
<script src="../js/messages_cn.js" type="text/javascript"></script>


사용 방법
1. 검사 규칙을 컨트롤에 쓰기
<script src="../js/jquery.js" type="text/javascript"></script>

<script src="../js/jquery.validate.js" type="text/javascript"></script>

<script src="../js/jquery.metadata.js" type="text/javascript"></script>



$().ready(function() {

 $("#signupForm").validate();

});





<form id="signupForm" method="get" action="">

    <p>

        <label for="firstname">Firstname</label>

        <input id="firstname" name="firstname" class="required" />

    </p>

 <p>

  <label for="email">E-Mail</label>

  <input id="email" name="email" class="required email" />

 </p>

 <p>

  <label for="password">Password</label>

  <input id="password" name="password" type="password" class="{required:true,minlength:5}" />

 </p>

 <p>

  <label for="confirm_password">    </label>

  <input id="confirm_password" name="confirm_password" type="password" class="{required:true,minlength:5,equalTo:'#password'}" />

 </p>

    <p>

        <input class="submit" type="submit" value="Submit"/>

    </p>

</form>


class="{}"을 사용하는 방식으로 패키지를 도입해야 합니다: jquery.metadata.js.
다음과 같은 방법으로 프롬프트 내용을 수정할 수 있습니다.
class="{required:true,minlength:5,messages:{required:'     '}}"

equalTo 키워드를 사용할 때는 다음 코드와 같이 따옴표를 붙여야 합니다.
class="{required:true,minlength:5,equalTo:'#password'}"

2. 검사 규칙을 js 코드에 쓰기
$().ready(function() {

 $("#signupForm").validate({

        rules: {

   firstname: "required",

   email: {

    required: true,

    email: true

   },

   password: {

    required: true,

    minlength: 5

   },

   confirm_password: {

    required: true,

    minlength: 5,

    equalTo: "#password"

   }

  },

        messages: {

   firstname: "     ",

   email: {

    required: "   Email  ",

    email: "      email  "

   },

   password: {

    required: "     ",

    minlength: jQuery.format("      {0}    ")

   },

   confirm_password: {

    required: "       ",

    minlength: "        5   ",

    equalTo: "            "

   }

  }

    });

});


메시지에서 컨트롤에 메시지가 없으면 기본 정보를 호출합니다
<form id="signupForm" method="get" action="">

    <p>

        <label for="firstname">Firstname</label>

        <input id="firstname" name="firstname" />

    </p>

 <p>

  <label for="email">E-Mail</label>

  <input id="email" name="email" />

 </p>

 <p>

  <label for="password">Password</label>

  <input id="password" name="password" type="password" />

 </p>

 <p>

  <label for="confirm_password">    </label>

  <input id="confirm_password" name="confirm_password" type="password" />

 </p>

    <p>

        <input class="submit" type="submit" value="Submit"/>

    </p>

</form>


required:true는 값이 있어야 합니다.required: "#aa:checked"표현식의 값이 진짜라면 검증이 필요합니다.required:function () {} 은 검증이 필요하다는 뜻으로 되돌아옵니다.
뒤에 있는 두 가지는 표에 동시에 기입하거나 기입하지 않는 요소가 필요합니다.
상용 방법 및 주의 문제
1. 기본 SUBMIT를 다른 방식으로 대체
$().ready(function() {

 $("#signupForm").validate({

        submitHandler:function(form){

            alert("submitted");   

            form.submit();

        }    

    });

});


aax 방식 사용하기
 $(".selector").validate({     

 submitHandler: function(form) 

   {      

      $(form).ajaxSubmit();     

   }  

 }) 


validate의 기본값을 다음과 같이 설정할 수 있습니다.
 $.validator.setDefaults({

 submitHandler: function(form) { alert("submitted!");form.submit(); }

});


폼을 제출하려면form을 사용해야 합니다.submit (), $(form) 을 사용하지 마십시오.submit().
2. debug, 폼만 검증하고 제출하지 않음
만약 이 매개 변수가true라면, 폼은 제출하지 않고, 검사만 하고, 디버깅을 할 때 매우 편리합니다.
$().ready(function() {

 $("#signupForm").validate({

        debug:true

    });

});


한 페이지에서 여러 양식을 debug로 설정하려면 다음을 사용합니다.
$.validator.setDefaults({

   debug: true

})


3. ignore: 일부 요소를 무시하고 검증하지 않음
ignore: ".ignore"


4, 오류 정보 표시 위치 변경
errorPlacement:Callback


오류가 놓인 위치를 표시합니다. 기본값은: error입니다.appendTo(element.parent());즉 오류 정보를 검증된 요소 뒤에 두는 것이다.
errorPlacement: function(error, element) {  

    error.appendTo(element.parent());  

}


인스턴스
<tr>

    <td class="label"><label id="lfirstname" for="firstname">First Name</label></td>

    <td class="field"><input id="firstname" name="firstname" type="text" value="" maxlength="100" /></td>

    <td class="status"></td>

</tr>

<tr>

    <td style="padding-right: 5px;">

        <input id="dateformat_eu" name="dateformat" type="radio" value="0" />

        <label id="ldateformat_eu" for="dateformat_eu">14/02/07</label>

    </td>

    <td style="padding-left: 5px;">

        <input id="dateformat_am" name="dateformat" type="radio" value="1"  />

        <label id="ldateformat_am" for="dateformat_am">02/14/07</label>

    </td>

    <td></td>

</tr>

<tr>

    <td class="label">&nbsp;</td>

    <td class="field" colspan="2">

        <div id="termswrap">

            <input id="terms" type="checkbox" name="terms" />

            <label id="lterms" for="terms">I have read and accept the Terms of Use.</label>

        </div>

    </td>

</tr>



errorPlacement: function(error, element) {

    if ( element.is(":radio") )

        error.appendTo( element.parent().next().next() );

    else if ( element.is(":checkbox") )

        error.appendTo ( element.next() );

    else

        error.appendTo( element.parent().next() );

}


코드의 역할은: 일반적인 경우 오류 정보를 에 표시하고,radio라면 에 표시하며,checkbox라면 내용의 뒤에 표시합니다.
매개 변수
타입
묘사
기본값
errorClass
String
오류 알림의 css 클래스 이름을 지정합니다. 오류 알림의 스타일을 사용자 정의할 수 있습니다.
"error"
errorElement
String
어떤 탭으로 오류를 표시합니까? 기본값은 label입니다. em으로 바꿀 수 있습니다.
"label"
errorContainer
Selector
검증 정보를 표시하거나 숨기면 오류 정보가 나타날 때 용기 속성을 표시하고 오류가 없을 때 숨기는 것을 자동으로 실현할 수 있어 쓸모가 없다.errorContainer: "#messageBox1, #messageBox2"
 
errorLabelContainer
Selector
잘못된 정보를 한 용기에 통일적으로 넣다.
 
wrapper
String
어떤 라벨로 위에 있는 errorElement을 다시 싸세요.
 
일반적으로 이 세 가지 속성을 동시에 사용하면 한 용기에 모든 오류 알림을 표시하고 정보가 없을 때 자동으로 숨긴다.
errorContainer: "div.error",

errorLabelContainer: $("#signupForm div.error"),

wrapper: "li"


5, 오류 정보 표시 스타일 변경
오류 알림의 스타일을 설정하면 아이콘 표시를 추가할 수 있습니다. 이 시스템에validation이 설치되어 있습니다.css, 검사 파일의 스타일을 유지하는 데 사용됩니다.
input.error { border: 1px solid red; }

label.error {

  background:url("./demo/images/unchecked.gif") no-repeat 0px 0px;



  padding-left: 16px;



  padding-bottom: 2px;



  font-weight: bold;



  color: #EA5200;

}

label.checked {

  background:url("./demo/images/checked.gif") no-repeat 0px 0px;

}


6, 각 필드 검증 통과 함수
success:String,Callback

검증할 요소가 검증된 동작을 통해 문자열과 같으면 css 클래스로 간주되고 함수와 같을 수도 있습니다.
success: function(label) {

    // set &nbsp; as text for IE

    label.html("&nbsp;").addClass("checked");

    //label.addClass("valid").text("Ok!")

}


CSS에서 정의한 스타일 .
success: "valid"


7. 검증의 트리거 방식 수정
다음은 boolean형이지만,false로 바꾸지 않으면 함부로 추가하지 않는 것을 권장합니다.
트리거 모드
타입
묘사
기본값
onsubmit
Boolean
제출 시 확인합니다.false로 설정하면 다른 방법으로 검증합니다.
true
onfocusout
Boolean
초점을 잃었을 때 검증합니다. (복선상자/라디오 단추는 포함되지 않습니다.)
true
onkeyup
Boolean
keyup 에서 확인합니다.
true
onclick
Boolean
체크 상자와 라디오 단추를 눌렀을 때 검증합니다.
true
focusInvalid
Boolean
폼을 제출하면 검증되지 않은 폼(첫 번째 또는 제출하기 전에 초점을 얻은 검증되지 않은 폼)이 초점을 얻는다.
true
focusCleanup
Boolean
true라면 검증되지 않은 요소가 초점을 얻었을 때 오류 알림을 제거합니다.focusInvalid와 함께 사용하지 마십시오.
false
//     

$().ready(function() {

 var validator = $("#signupForm").validate({

        submitHandler:function(form){

            alert("submitted");   

            form.submit();

        }    

    });

    $("#reset").click(function() {

        validator.resetForm();

    });



});


8. 비동기식 검증
remote:URL

aax 방식으로 검증을 진행하면 현재 검증된 값을 원격 주소로 기본적으로 제출합니다. 다른 값을 제출할 필요가 있으면 데이터 옵션을 사용할 수 있습니다.
remote: "check-email.php"
remote: {

    url: "check-email.php",     //      

    type: "post",               //      

    dataType: "json",           //         

    data: {                     //      

        username: function() {

            return $("#username").val();

        }

    }

}


원격 주소는 "true"또는 "false"만 출력할 수 있고 다른 출력은 출력할 수 없습니다.
9. 사용자 정의 검사 추가
addMethod:name, method, message

사용자 정의 검증 방법
//        

jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {

    var length = value.length;

    for(var i = 0; i < value.length; i++){

        if(value.charCodeAt(i) > 127){

            length++;

        }

    }

  return this.optional(element) || ( length >= param[0] && length <= param[1] );   

}, $.validator.format("        {0}-{1}     (      2   )"));



//          

jQuery.validator.addMethod("isZipCode", function(value, element) {   

    var tel = /^[0-9]{6}$/;

    return this.optional(element) || (tel.test(value));

}, "           ");


주의: additional-methods.js 파일에 jquery를 추가하거나 추가합니다.validate.js 파일에 추가됩니다.일반적으로 additional-methods에 쓰는 것을 권장합니다.js 파일에서
참고: 메시지에서cn.js 파일에 추가: isZipCode: "중국어, 영문자, 숫자, 밑줄만 포함할 수 있습니다."호출하기 전에 additional-methods를 추가합니다.js 파일의 인용입니다.
10. 라디오와 체크박스, select의 검증
라디오의 Required는 하나를 선택해야 한다는 것을 표시합니다.
<input  type="radio" id="gender_male" value="m" name="gender" class="{required:true}" />

<input  type="radio" id="gender_female" value="f" name="gender"/>


checkbox의 Required는 반드시 선택해야 한다는 것을 표시합니다.
<input type="checkbox" class="checkbox" id="agree" name="agree" class="{required:true}" />


checkbox의minlength는 선택해야 할 최소 개수를 표시하고maxlength는 최대 선택 개수를 표시하며rangelength:[2,3]는 선택한 개수 구간을 표시합니다.
<input type="checkbox" class="checkbox" id="spam_email" value="email" name="spam[]" class="{required:true, minlength:2}" />

<input type="checkbox" class="checkbox" id="spam_phone" value="phone" name="spam[]" />

<input type="checkbox" class="checkbox" id="spam_mail" value="mail" name="spam[]" />


select의 Required는 선택된value가 비어 있을 수 없음을 표시합니다.
<select id="jungle" name="jungle" title="Please select something!" class="{required:true}">

    <option value=""></option>

    <option value="1">Buga</option>

    <option value="2">Baga</option>

    <option value="3">Oi</option>

</select>


select의minlength는 선택한 최소 개수(다중 선택 가능한select)를 표시하고maxlength는 가장 큰 선택 개수를 표시하며rangelength:[2,3]는 선택한 개수 구간을 표시합니다.
<select id="fruit" name="fruit" title="Please select at least two fruits" class="{required:true, minlength:2}" multiple="multiple">

    <option value="b">Banana</option>

    <option value="a">Apple</option>

    <option value="p">Peach</option>

    <option value="t">Turtle</option>

</select>

좋은 웹페이지 즐겨찾기