Lui*_*rao 5 jquery html5 jquery-validate razor unobtrusive-validation
我有以下观点:
@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>
}
Run Code Online (Sandbox Code Playgroud)
使用以下JavaScript在计时器上每秒运行一次:
$("form").validate();
if ($("form").valid()) {
//...
}
Run Code Online (Sandbox Code Playgroud)
为文本区域元素生成以下html(唯一需要验证的元素):
<textarea
data-val="true"
data-val-required="The Expression field is required."
cols="20" rows="2"
id="Expression" name="Expression"
spellcheck="false">
</textarea>
Run Code Online (Sandbox Code Playgroud)
问题是验证没有做任何事情,除非我使用浏览器工具手动添加class ="required".如果我执行此验证工作并显示错误消息"需要表达式字段".确切地说"$("form").valid()"即使textarea为空,也总是返回true.由于我使用的是自动生成data-val属性的anotations,我想依赖它们.我究竟做错了什么?
仅供参考我的脚本参考如下:
<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" ...
Run Code Online (Sandbox Code Playgroud)
您是否启用了 .NET 的 Unobtrusive Javascript 和客户端验证?
尝试在您的视图中设置以下内容:
@{ Html.EnableUnobtrusiveJavaScript(true);
Html.EnableClientValidation(true);
Html.ValidationSummary(true);
}
Run Code Online (Sandbox Code Playgroud)
您还可以在 web.config 中将其设置为站点范围
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4175 次 |
| 最近记录: |