14

在尝试避免使用 JavaScript 多年后,Iv 开始在 MVC asp.net 中使用 Query 进行验证,因为似乎没有官方的验证方式,我很惊讶 jQuery 有多好。

首先,有没有办法让智能感知适用于 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>

但这没有用。

4

4 回答 4

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>

那应该行得通。

于 2008-09-15T20:18:55.763 回答
10

您可能想在CodeBetter.com和他的示例应用程序画布上查看Karl Seguin的 ASP.NET MVC 验证方法。

验证 - 第 1 部分 - 入门

验证 - 第 2 部分 - 客户端

验证 - 第 3 部分 - 服务器端

于 2009-05-02T18:46:42.830 回答
4

VS2008中有JQuery IntelliSense的Visual Studio 2008 修补程序。这也可能与 SP1 捆绑在一起。

于 2008-09-14T16:54:13.733 回答
1

关于 jquery(和其他插件)的智能感知:为了在您自己的脚本文件中也有完整的智能感知,只需在 .js 文件的顶部为您想要智能感知的每个文件包含一次以下行:

/// <reference path="[insert path to script file here]" />

简单,但非常有用 =)

于 2008-11-18T13:02:48.913 回答