jQuery.validate不适用于ASP.NET Core

时间:2017-02-24 00:09:02

标签: javascript jquery asp.net asp.net-mvc

我已经成功地为我的网站制作了一个有效的jQuery.validation表单,只有HTML,CSS和JS(带有依赖项:jQuery和Validation)。问题是,当我在一个干净的ASP.NET核心Web项目中并使用完全相同的代码时,它似乎似乎没有在JavaScript中使用我的自定义验证参数

验证适用于所有情况。但是,我对[options]的自定义.validate([options])似乎不适用于ASP.NET Core

工作代码示例:JSFiddle

HTML:

<form method="post">
<fieldset>
    <div class="master">
      <input name="name" id="name" placeholder="Name" minlength="2" maxlength="40" required />
    </div>
    <div class="master">
      <input name="email" id="email" placeholder="Email Address" type="email" required />
    </div>
    <div class="master">
      <input name="company" placeholder="Company Name" />
    </div>
    <div class="master">
      <input name="website" placeholder="Website" type="url" required />
    </div>

    <button type="submit">Next</button>
</fieldset>
</form> 

CSS:

.master {
  padding: 10px;
  background-color: white;
}

.has-error {
  background-color: red;
}

.has-success {
  background-color: green;
}

JS:

$('form').validate({
    // This disables the default validation notifications to the user.
    // Instead I'll be using CSS colors to notify users of valid or invalid fields
    errorPlacement: function (error, element) { },

    // Invalid field produces a red-background in parent element
    highlight: function(element) {
    $(element).parent().addClass('has-error').removeClass('has-success');
  },

  // Valid field produces a green-background in parent element
  unhighlight: function(element) {
    $(element).parent().removeClass('has-error').addClass('has-success');
  }
});

我的JavaScript .validate([options])做了三件事:

  1. 删除jQuery.validation的默认通知选项
  2. 如果<field> 无效,则父元素背景颜色为红色
  3. 如果<field> 有效,则父元素背景颜色为绿色
  4. 注意:

    • 将我的ASP.NET Core(1.1)更新为最新的稳定版本
      • 降级为ASP.NET Core 1.0以进行测试
    • 通过bower,local和CDN(用于测试)添加了最新的jQuery
    • 通过凉亭,本地和CDN添加最新验证(用于测试)
      • 根据Validate的网站,必须使用某些版本的jQuery来实现兼容性。我通过bower,local和CDN
      • 测试了所有版本
    • 制作了一个原始的HTML,CSS和JS版本,在JSFiddle,CodePen和本地中删除了所有内容(依赖项)。 一切都很完美但不是ASP项目。
    • 外部或内联JavaScript,无需更改。

    我的结论: 验证适用于所有情况,这意味着ASP.NET核心应用程序和纯HTML - CSS - JS都具有正确的功能验证。

    唯一不起作用的是当我在ASP.NET核心应用程序中的[options]中提供$('form').validate([options]);时。我不确定为什么我的选项没有被使用。

    .validate([options])

    上的官方jQuery.validate页面

0 个答案:

没有答案