2

어쩌면 그것은 내 마음이 움직이는 방식 일 수도 있지만, 사용자가 눈에 잘 띄지 않는 검사기를 어떻게 작성해야하는지 이해하기가 어렵습니다. C# 부분은 충분히 쉽지만 jqueryui 어댑터는 내가 잃어버린 부분이다.날짜에 대한 맞춤식 눈에 거슬리는 날짜 검사기

저는 과거에 일정한 시간이 있어야하는 유효성 검사기를 만들기 위해 노력해 왔습니다. 나이 인증에 이것을 사용하여 누군가가 과거 18 년의 날짜를 입력했는지 확인합니다.

필자는 마침내 원격 유효성 검사기로 만들기로 결정했습니다. 유효성 검사는 클라이언트와 서버 측에서 동일한 코드를 사용합니다. 아직도, 나는이 일을하기 위해 jquery에 흥미가있을 것이다.

Data Annotation Extensions에 날짜 기능이 있기를 바랍니다.

답변

2

Brad Wilson's blog article에 사용자 정의 유효성 검사기 생성을 포함하여 asp.net mvc를 사용하여 눈에 띄지 않는 유효성 검사에 대한 많은 정보를 찾을 수 있습니다.

// Extend date with age calculator 
    Date.prototype.age = function (at) { 
     var value = new Date(this.getTime()); 
     var age = at.getFullYear() - value.getFullYear(); 
     value = value.setFullYear(at.getFullYear()); 
     if (at < value) --age; 
     return age; 
    }; 

    // Add adapter for minimum age validator. Wrap in closure 
    (function ($) { 
     $.validator.unobtrusive.adapters.addSingleVal("minage", "value"); 
    } (jQuery)); 

    // Add client side minimum age validator 
    $.validator.methods.minage = function (value, element, params) { 

     // If no value is specified, don't validate 
     if (value.length == 0) { 
      return true; 
     } 

     var dob = new Date(Date.parse(value)); 

     if (dob.age(new Date()) < params || dob == 'Invalid Date') { 
      return false; 
     } 

     return true; 
    }; 

크레딧에 대한 : 다음 HTML을 기반으로

당신은 클라이언트 측에서 검증 된 물건을 얻을 수있는 다음과 같은 자바 스크립트를 추가 할 수 있습니다

<input type="text" name="Age" 
     data-val="true" 
     data-val-required="This field is required" 
     data-val-minage="You should be 18 years or older, go get your parents!" 
     data-val-minage-value="18" /> 
    <input type="submit"/> 

(텍스트 상자 도우미의 출력해야한다) 나이 계산기는 Dave

입니다. 여기서 누락 된 한가지는 세계화이지만, 문제의 범위를 벗어났습니다. jquery Globalize plugin

희망을 사용하여 구현 BTW 매우 쉽게이 환상적이다

+0

을하는 데 도움이됩니다. 어댑터가 작동하는 방식과 jqv가 상호 작용하는 방식을 끊는 것 같습니다. Brads 기사를 12 번 이상 읽었으며 무언가가 클릭되지 않습니다. –

관련 문제