2010-05-14 57 views
1

我已經使用MVC MVC 2.0客戶端驗證,但它不能按預期工作。現在我試圖找出,我做錯了什麼。 它是如何工作的? 我有這樣的呈現形式:MVC客戶端驗證如何正確工作?

<form method="post" action="/Sprint/Edit/68d4886b-a86a-4f0b-b713-39219febddf3"> 

     <fieldset> 

      <legend>Sprint</legend> 

      <table> 

<tbody><tr> 
    <td><label for="sprint_Title">Title</label></td> 
    <td><input type="text" value="Wichtige Private Erledigungen" name="sprint.Title" id="sprint_Title" class="input-box t-input"></td> 
    <td><span class="error"><span id="sprint_Title_validationMessage" class="field-validation-valid"></span></span></td> 
</tr> 

<tr> 
    <td><label for="sprint_Date">Date</label></td> 
    <td> 
     <div id="sprint_Date" class="date-picker t-input t-widget t-datepicker"><input value="12.05.2010" name="sprint.Date" id="sprint_Date-input" class="t-input" autocomplete="off"><a title="Open the calendar" tabindex="-1" href="#" class="t-link t-icon t-icon-calendar">select date</a></div> 
    </td> 
    <td><span class="error"><span id="sprint_Date_validationMessage" class="field-validation-valid"></span></span></td> 
</tr> 


<tr> 
    <td><label for="sprint_Description">Description</label></td> 
    <td><textarea rows="10" name="sprint.Description" id="sprint_Description" cols="80" class="t-input">dsfs1</textarea></td> 
    <td><span class="error"><span id="sprint_Description_validationMessage" class="field-validation-valid"></span></span></td> 
</tr> 
      </tbody></table> 

     </fieldset> 

    <input type="submit" value="Submit" name="Submit" id="Submit" class="t-button t-state-default"> 

</form> 

而且這個腳本被渲染:

<script type="text/javascript"> 
//<![CDATA[ 
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; } 
window.mvcClientValidationMetadata.push({"Fields":[{"FieldName":"sprint.Title","ReplaceValidationMessageContents":true,"ValidationMessageId":"sprint_Title_validationMessage","ValidationRules":[{"ErrorMessage":"Title is required.","ValidationParameters":{},"ValidationType":"required"}]},{"FieldName":"sprint.Date","ReplaceValidationMessageContents":true,"ValidationMessageId":"sprint_Date_validationMessage","ValidationRules":[{"ErrorMessage":"Das Feld \"Date\" ist erforderlich.","ValidationParameters":{},"ValidationType":"required"}]},{"FieldName":"sprint.Description","ReplaceValidationMessageContents":true,"ValidationMessageId":"sprint_Description_validationMessage","ValidationRules":[]}],"FormId":null,"ReplaceValidationSummary":false}); 
//]]> 
</script> 

但讓我吃驚的斷點只停留在頁面加載。我認爲它應該也是如果一個字段是選項卡?至少,在我按下發布按鈕之後。

爲什麼客戶端驗證不適合我?

回答

0

這只是設置處理程序,它不會實際上在提交表單時觸及此行,也不會在字段之間進行選擇。

失去焦點和/或表單提交後,您將收到驗證錯誤,但是如果您在頁面上有其他javascript錯誤,則可能會導致失敗。

此外,還要確保你已經引用你的頭需要的JavaScript文件:

  • MicrosoftAjax.js
  • MicrosoftMvcValidation.js