【问题标题】:Jquery Validate - Unable to get the validator workingJquery Validate - 无法让验证器工作
【发布时间】:2016-10-27 04:37:22
【问题描述】:

我有一个想要验证的表单,但我无法让验证器工作。

主页是 ASP.NET C#。 我有主标签,将在 submitHandler 上使用 ajax 标注来提交表单。 在表单标签内,我有一个 div,它是一个 jquery 对话框。在那个 div 里面,我有所有的字段和提交表单的按钮(实际上是一个带有 jquery .click 事件的按钮)。

字段是这样的:

<input class="last_name_class modal__input__font" id="lastname" style="width:100%;" type="text" value="" runat="server" />

这是提交按钮

<input class="btn_red" id="btn_Submit" type="button" value="CREATE CUSTOMER" />

当按钮被点击时,它会触发:

$('#btn_Submit').click(function () {
    $('#form1').valid();
});

这是我的 validate() 函数

 $('#form1').validate({

            rules: {
                <%=lastname.ClientID%> :{
                    required: true,
                },
                <%=firstnames.UniqueID%> :{
                    required: true,
                },
                <%=dob.UniqueID%> :{
                    required: true,
                },
                <%=addressline1.UniqueID%> :{
                    required: true,
                },
                <%=suburb.UniqueID%> :{
                    required: true,
                },
                <%=state.UniqueID%> :{
                    required: true,
                },
                <%=postcode.UniqueID%> :{
                    required: true,
                },

            },
            highlight: function(element, errorClass) {
                alert(element);
                $(element).addClass(errorClass);
                $(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
            },
            unhighlight: function(element, errorClass) {
                $(element).removeClass(errorClass);
                $(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
            },
            submitHandler: function (form) {
                // do other things for a valid form
                //form.submit();

            }
        });

当我点击按钮时,似乎什么也没有发生。我什至无法判断是否触发了验证。

谢谢

【问题讨论】:

  • 你把所有需要的jQuery脚本都放了吗?
  • 我有以下4个

标签: javascript c# jquery asp.net jquery-validate


【解决方案1】:

Jquery 验证适用于元素名称,检查这一行:

<input class="last_name_class modal__input__font" id="lastname" style="width:100%;" type="text" value="" runat="server" />

没有指定名称。将其更改为:

<input class="last_name_class modal__input__font" id="lastname" name="lastname" style="width:100%;" type="text" value="" runat="server" />

然后再试一次。

【讨论】:

  • 我尝试将名称字段添加到我的所有字段中,但没有任何反应。有没有办法找出验证器是否被正确调用以及在哪里调用失败?
  • @Saj - 您不仅必须在每个输入上都有一个name,而且只有可以从rules 对象中引用的NAME。 &lt;%=lastname.ClientID%&gt; 在我看来就像 id
  • @Saj, “有没有办法找出验证器是否被正确调用以及在哪里调用失败?” ~ 因为它是客户端( JavaScript),使用浏览器中的 JavaScript 控制台检查错误、检查 DOM 等。
  • 感谢您的建议。我按照以下进行了更改:rules: { lastname :{ required: true, }, },但它仍然什么都不做
  • @Saj,再次,使用浏览器的 JavaScript 控制台检查错误。使用浏览器的 DOM 检查器来验证 HTML 标记和 JavaScript 是否都按预期呈现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多