1
我希望有人遇到类似的东西。文本输入与文本触发客户端[必需的]错误消息。MVC客户端验证导致虚假错误
我有以下包括在主:
<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的
- 的CKEditor的隐藏 在页面加载,然后显示通过 jQuery的 未来
我只是不确定是什么原因造成的。
形式:
<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(); %>
服务器端验证工作正常,并不会产生错误。
请问您可以发表表格代码吗? – 2010-07-29 04:51:41
已添加表单代码。 – asfsadf 2010-07-29 05:03:15
我有完全相同的问题...我无法在客户端解决它。问题在于,CKeditor不会将编辑器的角色与在客户端验证之前进行验证检查的textarea同步。我试图在模糊或forceBlur事件上同步,但这也不起作用....所以我最终只在服务器端进行了验证。如果您有解决方案,请发布。 :) – apolka 2010-07-29 07:25:53