2010-07-29 5 views
1

나는 누군가가 비슷한 것을 실행하기를 바라고 있습니다. 텍스트 입력 인 경우 클라이언트 측 [필수] 오류 메시지가 표시됩니다.거짓 오류를 일으키는 MVC 클라이언트 유효성 검사

는 I는 마스터에 포함 된 다음 한 :

<script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
<script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> 
<script src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script> 
<script src="/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> 
<script src="/Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script> 
<script src="/Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.validate.js" type="text/javascript"></script> 

을뿐만 아니라보기에

<% Html.EnableClientValidation(); %> 

을 가지고있다.

몇 가지 가능한 요인 :

  • 양식은 제출 된 텍스트가 CKEditor는 jQuery를
  • 를 통해 페이지로드 숨겨진하고 계시
  • CKEditor에서 오는
  • 부분보기에

나는 무엇이 이것을 일으킬 수 있는지 잘 모르겠습니다.

형태 :

<form action="/Quote/Create/1" id="form0" method="post"><div class="validation-summary-valid" id="validationSummary"><ul><li style="display:none"></li> 

</ul></div> 
<fieldset> 
    <legend>Fields</legend> 
    <div class="editor-field"> 
     <input id="QuoteID" name="QuoteID" type="hidden" value="0" /> 
    </div> 
    <div class="editor-field"> 
     <input id="UserID" name="UserID" type="hidden" value="54cb0fde-649d-429c-8800-6bd9cc286d90" /> 
    </div> 

     <div class="editor-label"> 
     <label for="PageNumber">PageNumber</label> 
    </div> 
    <div class="editor-field"> 
     <input id="PageNumber" name="PageNumber" type="text" value="" /> 
     <span class="field-validation-valid" id="PageNumber_validationMessage"></span> 
    </div> 
    <div class="editor-label"> 

     <label for="QuoteText">QuoteText</label> 
    </div> 
    <div class="editor-field"> 
     <textarea cols="20" id="QuoteText" name="QuoteText" rows="2"> 
</textarea> 
     <span class="field-validation-valid" id="QuoteText_validationMessage"></span> 
    </div> 
    <div class="editor-field"> 
     <input id="BookID" name="BookID" type="hidden" value="1" /> 

    </div> 
    <div class="editor-field"> 
     <input id="DateCreated" name="DateCreated" type="hidden" value="7/28/2010 9:21:36 PM" /> 
    </div> 
    <p> 
     <input id="quoteSubmit" type="submit" value="Create" /> 
    </p> 
</fieldset> 
</form><script type="text/javascript"> 
//<![CDATA[ 
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; } 
window.mvcClientValidationMetadata.push({"Fields":[{"FieldName":"PageNumber","ReplaceValidationMessageContents":true,"ValidationMessageId":"PageNumber_validationMessage","ValidationRules":[{"ErrorMessage":"The field PageNumber must be a number.","ValidationParameters":{},"ValidationType":"number"}]},{"FieldName":"QuoteText","ReplaceValidationMessageContents":true,"ValidationMessageId":"QuoteText_validationMessage","ValidationRules":[{"ErrorMessage":"That quote is too long.","ValidationParameters":{"minimumLength":0,"maximumLength":500},"ValidationType":"stringLength"},{"ErrorMessage":"You didn\u0027t even enter a quote...","ValidationParameters":{},"ValidationType":"required"}]}],"FormId":"form0","ReplaceValidationSummary":false,"ValidationSummaryId":"validationSummary"}); 
//]]> 
</script> 

나는

<% Html.EnableClientValidation(); %> 

서버 측 유효성 검사가 잘 작동 및 오류를 생성하지 꺼내.

+0

양식 코드를 게시 할 수 있습니까? –

+0

양식 코드가 추가되었습니다. – asfsadf

+0

나는 똑같은 문제가 있었다 ... 그리고 나는 클라이언트 측에서 그것을 해결할 수 없었다. 문제는 어떻게 든 CKeditor가 클라이언트 유효성 검사가 시작되기 전에 유효성 검사가 확인되는 텍스트 영역과 편집기의 컨투어를 동기화하지 않는다는 것입니다. 나는 blur 또는 forceBlur 이벤트를 syncronize하려고 시도했지만 어느 쪽도 작동하지 않았다 .... 그래서 결국 서버 측에서만 유효성을 검사하게되었다. 해결책이 있다면 게시하십시오. :) – apolka

답변

1

나는 그것을 알아 냈다!

$ ('# quoteSubmit') 클릭 (function() { CKEDITOR.instances [ 'QuoteText']. updateElement(); });

예요.

관련 문제