2013-02-19 4 views
0

grails 2.1.0에 대해 grails JQuery Validation UI Plugin을 사용하고 있습니다.JQuery 유효성 검사 UI 플러그인으로 사용자 정의 제약 조건 확인

나는 내 명령 개체 제약 조건에 따라 클라이언트 쪽에서 거의 형편 없다.

startTime(nullable: false, validator: {startTime, deal -> 
    if ((!DateUtils.isSameDay(startTime, new Date()) && startTime.before(new Date()))) //Start date is today or future but not before end date 
    { 
     return "pastDate" 
    } 
    if (deal.endTime && startTime.after(deal.endTime)) { 
     return "before.endTime" 
    } 
}) 
이 페이지의 마크 업 생성 한 다음 렌더링의 jQuery 유효성 검사 코드 결과


는 :

startTime: { 
    date: true, 
    required: true, 
    validator: { 
    url: '/appContextRoot/JQueryRemoteValidator/validate', 
    type: 'post', 
    data: { 
     validatableClass: 'myapp.command.tester.testerDealCommand', 
     property: 'startTime' 
    } 
    } 
} 

custum 로직을 제한 한 문제가 있습니다 , 내 명령 개체에서 사용자 지정 제약 조건이 "validator :"는 현재 아무 것도하지 않습니다.

이 사용자 정의 유효성 검사기를 작동시키는 최상의 방법은 무엇입니까?
1 : Ajax 호출의 일부 형식은 무엇입니까?
2 : Custom Constraits 플러그인을 사용하고 js 코드를 grails-validation-methods.js에 추가 하시겠습니까?
3 : 다른 방법은 없나요?

옵션 2를 사용하는 것이 확실하지 않습니다 .... 플러그인을 확장 할 수있는 방법이 있습니까?

나는 소스 코드 저장소에 플러그인의 별도 버전을 커밋하고 유지 관리하고 싶지 않습니다.

+0

검증을 그 자바 스크립트 날짜 개체가 이상한 ([일광 절약 시간 문제가 및 컴퓨터/브라우저에 따라 다르기 때문에] 서버 쪽에서 할 선호하는 날짜 처리 (http://stackoverflow.com/questions/2532729/daylight-saving-time-and -timezone-best-practices)). 따라서 귀하의 경우에는 데이터를 게시하기 전에이 작업을 수행해야한다면 Ajax 호출을 사용합니다. –

+0

적절한 태그 만 사용하십시오. '[jquery-validation-engine]'은 당신이 링크 한 플러그인이 아닙니다. 편집 됨. – Sparky

+0

@ SérgioMichels - 날짜 제약 조건은 내가 제공 할 수있는 가장 간단한 예일뿐입니다. 실제로 더 복잡한 도메인 논리를 포함하는 더 많은 사용자 지정 제약 조건이 있습니다. –

답변

1

나는 당신은 자신의 규칙에 따를 수 있습니다, 당신이 후 스크립트를로드하는 경우 grails-validation-methods.js

에 직접 사용자 정의 유효성 검사를 추가 할 필요가 없습니다, 정확하게 플러그인을 이해하면이 같은

jQuery.validator.addMethod("myCustomValidation", function(value, element, params) { 
    //perform your validation here 
}, "Custom validation fail."); 
관련 문제