【问题标题】:ASP.NET vs Jquery.ValidationASP.NET 与 Jquery.Validation
【发布时间】:2013-07-30 12:28:15
【问题描述】:

我正在尝试配置验证插件来执行 ASP.NET 生成的表单的验证:

   <script type="text/javascript">
    $(document).ready(function () {

        $("#aspnetForm").validate({
            rules: {
                "<%=ProjectName.ClientID%>": { required: true, minlength: 8 }
            },
            messages: {
                "<%=ProjectName.ClientID%>": { requred: "can not be empty", minlength: "type at least 8 chars" }

            },
            invalidHandler:
             function (form, validator) {
                 alert('validation failed!');
             },
            errorLabelContainer: $("#alert")
        });
    });
</script>

HTML 看起来像这样:

 <form name="aspnetForm" method="post" action="CreateProject.aspx"  
 onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_ShutUpPostbackButton')" 
 id="aspnetForm" enctype="MULTIPART/FORM-DATA">

 <input id="ctl00_JQueryContent_ProjectName" type="text" style="width:99%;" maxlength="50" name="ctl00$JQueryContent$ProjectName">


 </form>

由于某种原因,一个formenetioned FORM标签(加载页面后)

   novalidate="novalidate" 

包含。我不知道它是从哪里来的,它是否会干扰我的验证。

如果我在 INPUT 中键入 INVALID 一个字母,插件会通过将 class="valid" 设置为 INPUT 元素来做出反应,也就是说,有些东西正在工作。

除了让它工作之外,我还需要知道如何根据验证结果禁用/启用输入元素(主要是按钮)。我知道 invalidHandler,但是有效结果的处理程序是什么?请注意,我需要在打字期间进行所有验证。

【问题讨论】:

  • novalidate="novalidate" 是 HTML5 的一部分。检查您的 web.config 以验证 ClientValidationEnabled 和 UnobtrusiveJavaScriptEnabled 设置是否已启用。
  • @ema,我这样做了,但 novalidate 并没有消失。

标签: jquery asp.net validation


【解决方案1】:

此属性由 jquery.validate 插件添加,以防 HTML5 验证。它在 jquery.validate 的源代码(第 32-33 行)中:

// Add novalidate tag if HTML5.
this.attr( "novalidate", "novalidate" );

您可以删除此属性。看看这个讨论:http://forum.jquery.com/topic/disable-jquery-validate-when-html5-form-validation-is-present

【讨论】:

    【解决方案2】:

    submitHandler 是成功验证的表单触发的,正如您所说,invalidHandler 是未成功验证的表单。

    【讨论】:

      猜你喜欢
      • 2022-01-04
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      • 2012-07-07
      • 1970-01-01
      相关资源
      最近更新 更多