我有以下看法:
@using (Html.BeginForm())
{
<div class="left-column">
@Html.LabelFor(m => m.Expression)
@Html.TextAreaFor(m => m.Expression, new { @spellcheck = "false" })
@Html.EditorFor(m => m.Sku)
</div>
}
使用以下在计时器上每秒运行的 JavaScript:
$("form").validate();
if ($("form").valid()) {
//...
}
为文本区域元素(唯一需要验证的元素)生成以下 html:
<textarea
data-val="true"
data-val-required="The Expression field is required."
cols="20" rows="2"
id="Expression" name="Expression"
spellcheck="false">
</textarea>
问题是验证不会做任何事情,除非我使用浏览器工具手动添加 class="required"。如果我执行此验证工作并显示错误消息“表达式字段是必需的”。确切地说,即使 textarea 为空,“$("form").valid()” 也总是返回 true。由于我使用的是自动生成 data-val 属性的注释,所以我想依赖这些。我究竟做错了什么?
仅供参考,我的脚本参考如下所示:
<script src="/Scripts/modernizr-2.0.6-development-only.js" ...
<script src="/Scripts/jquery-1.6.2.js" ...
<script src="/Scripts/Parser.js" ...
<script src="/Scripts/jquery.unobtrusive-ajax.js" ...
<script src="/Scripts/jquery.validate.js" ...
<script src="/Scripts/jquery.validate.unobtrusive.js" ...