2013-02-11 7 views
0

jQuery와 작동하도록 사용자 정의 유효성 검사기를 가져 오는 데 문제가 있습니다.jquery를 사용하여 사용자 정의 유효성 검사기에 약간의 문제가 있음

텍스트 상자에 사서함이 있는지 확인하고 확인하는 기능은 다음과 같습니다.

function valPoBox(sender, args) { 
    var hasPObox = "^P\.?\s?O\.?\sB[Oo][Xx]."; 
    var StreetAddress = $('.streetaddress').val(); 
    var match = StreetAddress.match(RegExp(hasPObox)); 
    if (!match) { 
     args.IsValid = false; 
     sender.ErrorMessage = "Address must not contain P.O. Box"; 
     $('.valPoBox').attr("ErrorMessage", sender.ErrorMessage); 
    } 
    else { 
     args.IsValid = true; 
    } 
} 

텍스트 상자 밖으로 나가서 args.IsValid = false로 로직을 따라갈 때 함수가 실행됩니다. 오류 메시지는 표시되지 않습니다.

내가 잘못하고있는 아이디어가 있습니까?

답변

0

$('.valPoBox').attr("ErrorMessage", sender.ErrorMessage);의 마지막 줄은 실제로 유효한 코드가 아닙니다. attr 함수는 요소에 HTML 특성을 설정합니다. 필자가 원하는 것은 입력 후에 텍스트를 추가하고 유효성 검사에 실패하면 사용자에게 표시하는 것입니다. 이렇게하면 오류 메시지와 가죽을 사용하여 입력 한 후 범위를 설정

... 
    $('#PoBoxError').html(sender.ErrorMessage); 
} else { 
    args.IsValid = true; 
    $('#PoBoxError').html(''); 
} 

: 뭔가에

<input class="streetaddress" /><span id="PoBoxError"></span> 

귀하의 JS 후 변 : 예를 들어

, 당신은 이런 식으로 뭔가를 할 수 다시 한 번 유효성 검사를 통과했습니다. 이것은 당신이 이것을 성취 할 수있는 방법 중 하나 일뿐입니다. 다른 방법은 내용을 보이고 감추는 것과 관련이 있습니다. 그러나 가능한 한 원래의 코드에 최대한 근접하게 대답하려고 노력했습니다.

+0

빠른 응답을 주셔서 감사합니다. ASP에서 CustomValidator를 사용하고 위의 jquery를 통해 errormessage를 설정하려고합니다. 사용자 정의 유효성 검사기에는 "valPoBox"클래스가 있습니다. – reds184

+0

사용자 정의 유효성 검사기는 서버 측에서만 실행되므로 jQuery 또는 JavaScript를 사용하여 클라이언트에서 ErrorMessage 특성을 설정할 수 없습니다. 가장 좋은 방법은'AutoPostback = "true"'속성을 사용하여''에 넣고 입력 상자의'OnChange' 이벤트를 위해 JavaScript 코드를 .NET으로 변환하는 것입니다. 또한이 질문에는 ASP.NET 태그가 있어야합니다. 이는 ASP.NET이 jQuery보다 중요하기 때문입니다. :) – Deif