2012-01-23 2 views
2

MvcContrib Grid를 사용하여 페이지에 테이블을 표시하고 있습니다. 난 사용자가 여러 행을 선택하고 양식을 제출할 수 있도록 테이블에 확인란을 생성하는 사용자 정의 열을 사용하고 있습니다.데이터 주석없이 필드를 작성하는 방법

하나 이상의 확인란을 선택하지 않으면 양식을 제출하고 싶지 않습니다. 유효성 검사를 수행하기 위해이 Javascript를 쉽게 작성할 수 있었지만 MVC3과 함께 제공되는 눈에 거슬리지 않는 라이브러리를 사용하여이를 어떻게 적용 할 수 있는지 알고 싶었습니다.

난 그냥 적절한 클래스와 특성을 가진 입력을 설정하고 그 페이지에 스크립트 (validate 및 validate.unobtrusive)를 선택하고 유효성 검사가 필요하다고 표시해야한다고 상상하지만, 나는하지 않았습니다 지금까지 올바른 조합을 얻을 수 있습니다. 당신은 당신이 뭔가를 통해 양식을 다시 구문 분석 할 수있는 새로운 콘텐츠를 jQuery를 얘기를 해,

<input type="checkbox" 
     name="foo" 
     value="@item.foo" 
     class="input-validation-error" 
     data-val-required="Please select an option." 
     data-val="true" /> 

답변

1

데이터-발은 항목에 속성을 설정하십시오 : 여기

내가 현재 발생하고있는 입력 like :

 
$.validator.unobtrusive.parse($('#yourForm')); 

여기서 양식은 물론 양식 요소에 대한 참조입니다. * 을 http://www.devtrends.co.uk/blog/the-complete-guide-to-validation-in-asp.net-mvc-3-part-2

 
jQuery.validator.unobtrusive.adapters.addSingleVal("notequalto", "otherproperty", "mynotequaltofunction") 
+0

페이지에 새 콘텐츠를 추가하지 않으려 고합니다. 이 페이지는 모든 입력에 대해 data-val 및 data-val-required 속성이 제공됩니다. 난 그냥 클라이언트 유효성 검사를 시작하고 오류 메시지를 표시하려고합니다. 클래스를 "필수"로 설정하면 트리거되지만, 표시 할 메시지가 표시되지 않습니다. –

0
<div class="editor-field"> 
    <input class="text-box single-line" 
    data-val="true" data-val-number="The field Qty Available must be a number." 
    data-val-range="The field Qty Available must be between 0 and 120." 
    data-val-range-max="120" data-val-range-min="0" 
    data-val-required="The Qty Available field is required." 
    id="QtyOnHand" name="QtyOnHand" type="text" value="12" /> 
    <span class="field-validation-valid" data-valmsg-for="QtyOnHand" 
      data-valmsg-replace="true"></span> 
</div> 

타이의 데이터 모델 주석과 데이터 val- 사이에서 :

는이 위대한 게시물이와 jQuery를 당신이 호출 할 수있는 몇 가지 내부 어댑터가 위의 코드를 읽은 후에는 속성이 명확해야하지만 클라이언트 측 유효성 검사가 적용되는 곳은 분명하지 않을 수 있습니다. \ Scripts \ jquery.validate.unobtrusive.js 파일을 열고 "data-val"을 검색하십시오. 바로 자바 스크립트가 데이터 - , 입력 - 및 field- * CSS 클래스를 사용하여 클라이언트에 유효성 검사 메시지를 표시하거나 숨기는 것을 볼 수 있습니다.

위는 위대한 article에서 가져온 것입니다.

1

내 경험에 비추어 볼 때 클라이언트 쪽 유효성 검사를 표시하는 데 자주 간과하는 실수는 페이지에 Html.ValidationMessageFor (lambda)를 넣는 것입니다.

없으면 클라이언트 측 유효성 검사를 통해 양식을 제출하지 못하도록하거나 클라이언트 쪽에서 주석을 사용하여 생성 된 메시지를 표시하지 않습니다.

희망이 도움이됩니다.

관련 문제