m.Expression) @Html.Tex-6ren">
gpt4 book ai didi

jquery - 忽略 data-val 属性但使用类 ="required"的非侵入式验证

转载 作者:太空狗 更新时间:2023-10-29 16:42:54 26 4
gpt4 key购买 nike

我有以下看法:

@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"。如果我执行此验证工作并显示错误消息“需要表达式字段”。准确地说,"$("form").valid()"总是返回 true,即使 textarea 为空。因为我使用的是自动生成 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" ...

最佳答案

您是否为 .NET 启用了 Unobtrusive Javascript 和客户端验证?

尝试在您的 View 中设置以下内容:

@{  Html.EnableUnobtrusiveJavaScript(true);
Html.EnableClientValidation(true);
Html.ValidationSummary(true);
}

你也可以在你的 web.config 中设置它

<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

关于jquery - 忽略 data-val 属性但使用类 ="required"的非侵入式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11901552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com