2012-11-21 6 views
1

양식 컨트롤에 jquery 유효성 검사 플러그인을 사용하고 있습니다. 나는 number, minlength, maxlength에 대한 적절한 유효성 확인을 가진 3 개의 다른 메시지를 갖는 3 개의 개별 컨트롤을 쉽게 검증 할 수있다. 웹 참조, 생년월일, 우편 번호 및 기타 입력란과 같은 컨트롤이 있는데 둘 이상의 텍스트 상자가 있습니다. 아래는 내가 위의 세 가지 텍스트 상자 중 하나가 비어있는 경우, 다음 사용자가 하나의 메시지를 얻을 것이다, 확인이에 대한 사용자 지정 유효성 검사기 방법을 쓴jquery 유효성 검사 플러그인을 사용하여 여러 컨트롤에 대해 하나의 유효성 검사 메시지 표시

<input name="txtRef1" runat="server" type="text" id="txtRef1" /> 
<span class="ForwardSlash">-</span> 
<input runat="server" name="txtRef2" type="text" id="txtRef2" /> 
<span class="ForwardSlash">-</span> 
<input runat="server" name="txtRef3" type="text" id="txtRef3" /> 

웹 참조의 HTML이있다 - "필드가 필요합니다" . 개별 메시지가 있기를 원하지 않습니다. 양식 디자인 레이아웃을 포함한 디자인이 손상되기 때문입니다. 위 달성하기 위해 스크립트는 여기에 있습니다 : 나는 또한 모든 세 개의 텍스트 상자 위를 위해 나는 검증 메시지로 하나의 메시지 만 얻을 수 있도록 번호, MINLENGTH 및 최대 길이를 확인하기 위해이 기능을 향상시킬 수있는 방법

function setuppagevalidationrecall() { 

    $.validator.addMethod('example', 

     function (value, element) { 

       return ((value != "") && ($('#txtRef2').val() != "") && ($('#txtRef3').val() != "")); 

      }, "Field is required"); 


    var validator = $("#form1").validate({ 
     rules: { 
      txtRef1: { 
       example: true, 
       number: true, 
       minlength: 3, 
       maxlength: 3 
      } 

     } 
    }); 

. 또한 예제 코드를 인수와 같이 동적으로 만들어서 포스트 코드 (2 텍스트 상자), 생년월일 (3 텍스트 상자, dd/mm/yyyy)과 같은 모든 필드에 적용 할 수 있습니다.

답변

1

이 그룹을위한 것입니다 :-)하는 데 도움이됩니다.

오류 메시지의 그룹을 지정하십시오. 그룹은 임의의 그룹 이름을 키로하고 공백으로 구분 된 요소 이름의 목록으로 값으로 구성됩니다. 그룹 메시지가있는 곳의 errorPlacement ~ 컨트롤을 사용하십시오.

사용

groups:{ txtRef : "txtRef1 txtRef2 txtRef3" } 

errorPlacement: function (error, element) { 
       if (element.attr("name") == "txtRef1" 
      || element.attr("name") == "txtRef2" 
      || element.attr("name") == "txtRef3") 
        error.insertAfter("#txtRef3"); 
       else 
        error.insertAfter(element); 
    }, 

여기를보십시오 :

http://jsfiddle.net/uZYMr/2/

+0

대단히 감사합니다. 이것은 제가 찾고 있던 정확한 해결책입니다. –

0

무엇을하려고합니까? invalidHandlererrorPlacementjquery.validate에서 정확하게 사용하여 처리 할 수 ​​있습니다. 양식의 많은 요소에 대해 하나의 전역 오류 메시지 만 저장하려면 function을 작성할 필요가 없습니다.

나는 jquery.validate 가끔은 모든 오류가 동시에 발생하기 때문에 성가신 일이 있음을 알고 있지만 이것이 도움이 될 것이라고 확신합니다.

이 예를 살펴 : 당신이 볼 수 있듯이

http://jsfiddle.net/Lrvxk/

, 아니 사용자 정의 함수 또는 당신이 원하는대로 작업 물건을 얻기 위해 까다로운 일이 없다.

희망이 여러 컨트롤에 대한 단일 확인 메시지를 표시

+0

invalidHandler 방법이 좋다. 나는 전에 그것을 시험해 보았지만 한 스팬이나 div마다 필요한 모든 오류를 삽입하여 디자인 당 필요하지는 않았다. 마찬가지로 웹 참조에 대한 유효성 확인 메시지는 세 개의 텍스트 상자 아래에 있어야하고 우편 번호의 두 상자에도 있어야합니다. msgs의 요약이 아닙니다.또한 외부 게재 위치가 작성되지 않은 상태에서 텍스트 상자가 채워지면 오류 메시지를 제거하는 방법이 있습니다. 데모에서는 제출 버튼을 클릭 할 때만 메시지가 제거되기 때문입니다. –

+0

글쎄, 이것은 'span'에서 처음으로 발견 된 오류를 보여줄 것입니다. 디자인을 잃지 않기 위해 메시지를 저장할 위치를 변경할 수 있습니다. –

관련 문제