在尝试避免使用JavaScript多年之后,Iv开始在MVC asp.net中使用Query for validation,因为似乎没有正式的验证方法,我很惊讶jQuery有多好。
首先有一种方法可以让intellisense为jQuery及其验证插件工作,这样我就不必学习api了吗?
其次如何为此创建验证摘要,它当前将错误附加到文本框的右侧。:
<script type="text/javascript">
$().ready(function() {
$("#CreateLog").validate({
rules: {
UserName: {
required: true,
minLength: 2,
}
},
messages: {
UserName: {
required: "Please enter a username",
minLength: "Your username must consist of at least 2 characters",
}
}
});
});
</script>
<form id="CreateLog" action="Create" method="post" />
<label>UserName</label><br />
<%=Html.TextBox("UserName")%>
<br />
<div class="error"> </div>
<input type=submit value=Save />
</form>
我尝试将其添加到脚本中:
errorLabelContainer: $("#CreateLog div.error")
这是对html:
<div class="error"> </div>
但这不起作用。
答案 0 :(得分:11)
尝试在选项中指定包装器和标签容器。我还将display:none;
添加到错误容器的样式中,让jQuery决定何时显示它。
$().ready(function() {
$("#CreateLog").validate({
errorLabelContainer: $("ul", $('div.error-container')),
wrapper: 'li',
rules: {
UserName: {
required: true,
minLength: 2,
}
},
messages: {
UserName: {
required: "Please enter a username",
minLength: "Your username must consist of at least 2 characters"
}
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="error-container">
<ul></ul>
</div>
<form id="CreateLog" action="Create" method="post" />
<label>UserName</label><br />
<%=Html.TextBox("UserName")%>
<br />
<input type=submit value=Save />
</form>
这应该有效。
答案 1 :(得分:10)
您可能希望在Karl Seguin及其示例CodeBetter.com上查看application canvas的ASP.NET MVC验证方法。
Validation - Part 1 - Getting Started
答案 2 :(得分:4)
JQuery IntelliSense中有VS2008的Visual Studio 2008修补程序。这可能也与SP1捆绑在一起。
答案 3 :(得分:1)
关于jquery(和其他插件)的intellisense:为了在你自己的脚本文件中拥有完整的智能感知,只需在.js文件顶部包含以下一行,对于你想要智能感知的每个文件: / p>
/// <reference path="[insert path to script file here]" />
简单,但非常有用=)