【问题标题】:jQuery validator plugin without using form [duplicate]不使用表单的 jQuery 验证器插件 [重复]
【发布时间】:2009-06-25 23:44:35
【问题描述】:

我有多个部分是 asp.net,它以块的形式提交数据,我想使用 jquery 验证插件,但问题是 asp.net 将所有内容包装在表单和子表单中,不正确且技术上不正确。

所以唯一的选择是忘记表单并为 div 实现验证。但我看到的所有相同的人都在使用表单。由于不擅长 jquery,我无法弄清楚如何在页面部分(在 div 上)使用此验证器。

有可能吗?或任何其他好的选择?

来源: http://bassistance.de/jquery-plugins/jquery-plugin-validation/

【问题讨论】:

  • 感谢所有回复我已将应用程序切换到 MVC 以获得更多控制和清洁 html

标签: jquery asp.net jquery-validate


【解决方案1】:

我正在使用您上面提到的 bassistance jquery 插件,它不需要表单提交来进行验证。它只是在“on blur”事件触发后验证。

或者如果您想手动验证它,您可以调用:$("#commentForm").validate(); (阅读此文档页面[http://docs.jquery.com/Plugins/Validation][1]

【讨论】:

    【解决方案2】:

    在我的一个页面中,我有一个通过 Java 和 Ajax 提交回来的 div。在提交之前,我使用 .validate().element("#myelement"); 验证各个字段。不过我都是用 javascript 做的,完全不依赖于内置的 automagic asp 控件。

    我不想这么说,但全局表单问题是你真正的问题。这可能不是一个选项,但如果是,则视为切换到 asp.net MVC。

    【讨论】:

    • 感谢您的回复我已将应用程序切换到 MVC 以获得更多控制和清洁 html
    【解决方案3】:

    就像 nightingale2k1 说的,你应该可以用 FORM 来使用那个插件。下面是一个使用 DIV 的简单示例:

    <div id="pseudoForm">
      <input type="text" name="first_name"/>
      <input type="text" name="last_name"/>
    </div>
    <script type="text/javascript">
      $("#pseudoForm").validate({
        onfocusout:true,
        rules:{
          first_name:"required",
          last_name:"required"
        });
    </script>
    

    请注意我是如何使用“onfocusout:true”的,这将使插件在用户取消选择任一元素时生效。您需要使用类似的东西,或者连接您自己的事件(可能是响应按钮按下)以触发验证,因为普通触发器 (onSubmit) 不适用于 DIV。

    【讨论】:

    • 如果我这样做,我会在 FF 上得到“未定义的验证器”,在 IE 上得到“'settings' 为 null 或不是对象”,在 chrome 上得到“无法读取未定义的属性 'settings'”。怎么了?
    • 听起来是验证插件有问题;您真的需要一个新的 SO 问题,其中包含来自您的特定设置的大量详细信息和代码示例,以便任何人提供有意义的帮助。
    • 这不是答案,不知道为什么它被标记为已接受,因为它不起作用。
    • 此解决方案不起作用。谁能提供一个可行的解决方案。
    • -1,这个答案需要删除。 The plugin does not work like thisonfocusout 选项默认启用。 jsfiddle.net/Y4h2v
    猜你喜欢
    • 1970-01-01
    • 2011-01-04
    • 2018-12-28
    • 1970-01-01
    • 2018-04-18
    • 2015-04-27
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    相关资源
    最近更新 更多