2012-08-01 2 views
2

그래서 몇 시간 동안이 문제로 벽에 머리를 두들 겼습니다. 내 날짜 입력 필드에 대한 지역화 된 유효성 검사를 만들고 있습니다. 기본 jquery 날짜 검사기를 덮어 썼고 메서드가 제대로 작동하는 것 같습니다. 모든 것이 계획대로 진행되는 것 같지만 jquery 유효성 검사기를 사용하면 양식을 게시 할 수 없습니다.점으로 구분 된 clientside 날짜 유효성 검사 asp MVC 4

사용자 정의 유효성 검사 방법에 배치 된 중단 점은 방화 광구에서 올바르게 히트되며 예상 한대로 true를 반환합니다.

실행을 계속하면 빨간색 사각형의 유효성 검사 오류 필드가 사라지지만 유효성 검사 요약에 MVC 생성 속성 오류가 계속 표시됩니다. 여기

// Replace dots so jq validator can understand what's going on 
$(function() { 
    $.validator.addMethod(
    "date", 
    function (value, element) { 
     var s = value; 
     s = value.replace(/\./g, '/'); 

     // Chrome requires tolocaledatestring conversion, otherwise just use the slashed format 
     var d = new Date(); 
     return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value))) || !/Invalid|NaN/.test(new Date(s)); 
    }, 
    "" 
    ); 
}); 

$.validator.unobtrusive.parse(); 

이 양식은

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/tracker.validate.js")" type="text/javascript"></script> 

날짜 시간 editortemplate

에 위치해 내 부분보기에서 스크립트 참조입니다

tracker.validate.js : 여기

코드입니다
@model DateTime 


<input style="width:44%;display:inline;" type="text" name='@(ViewData.TemplateInfo.HtmlFieldPrefix).Day' value='@Model.Date.ToShortDateString()' class='date'/> 
<input style="width:30%;display:inline;" type="text" name='@(ViewData.TemplateInfo.HtmlFieldPrefix).Time' value='@Model.ToShortTimeString()' onblur='formatTimeInput(this)'/> 
@Html.HiddenFor(model => model) 

날짜 선택기 초기화 :

$.datepicker.setDefaults($.datepicker.regional['fi']); 

$('.date').datepicker({ 
    showOn: "button", 
    dateFormat: "dd.mm.yy", 
    buttonImage: '/content/images/calendarIcon.png', 
    buttonImageOnly: true, 
    constrainInput: false 
}); 

내가 부족 뭔가가 아니면 이러한 기본 속성 오류를 제거하는 어쨌든 무엇입니까?

답변

0

유효성 검사와 충돌하는 다른 스크립트 파일이 있습니다. 나는 _Layout.cshtml에서 라인

<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script> 

을 제거하고 지금 일하고있어.