【问题标题】:jQuery Validation plugin already part of jQuery?jQuery Validation 插件已经是 jQuery 的一部分了吗?
【发布时间】:2014-03-31 11:03:56
【问题描述】:

我的 jquery:

$("#sample_form").validate({
    rules: {
        name: "required"
    },
    messages: {
        name: "This field is required."
    }
});

表格:

<?php   $form_att = array('id' => 'sample_form');
        echo form_open('Controller/function',$form_att); ?>
      <input type='text' name='name' id='name'/>
    <?php echo form_close(); ?>

我做得对吗?名称字段不应为空。虽然它不起作用。我需要下载另一个 jquery 插件吗?我下载了jquery。虽然如果这需要一个特定的 jquery,比如游戏如何拥有模组/扩展。不完全确定,但我想做客户端验证。

编辑:

添加验证 jquery 后,其他功能将无法使用。如果我取出验证的代码sn-p,其他的就可以工作了。

我有附加输入类型的按钮。

样本,

$("#add").click(function(){
        $("#sample_td").append("<p><input type='text' id='sample[]' name='sample[]' size='60' placeholder='Instruction line'/></p>");
    });

如果单击带有 id add 的按钮,它会在 TD 内附加一个带有 id sample_td 的输入类型。

id 中的 [] 用于对所有附加的输入类型进行分组,因此,如果我想验证是否需要样本,并且附加了不同数量的样本,那么它将是

rules: { sample[]: "Required" }, messages: { sample[]: "这个字段是必需的。" }

所以如果任何输入类型的样本都将被验证。我从与将 [] 添加到名称字段相同的功能中得到了这个想法,所以 if i $_POST[sample'];它将以数组的形式返回名称为“sample[]”的所有字段的所有值。

【问题讨论】:

  • 是的,下载 jquery validate 插件,你肯定在浏览器中遇到控制台错误,因为你不包含 validate 插件
  • 介意给我一个直接链接吗?我对如何充分利用 jquery 所提供的功能感到非常困惑,因为每当我访问他们的网站时,他们都会提供大量链接,而我不知道要 DL 是哪一个。我以为点击下载 jquery 会给我整个包。
  • 如果您不知道where to find the jQuery Validate plugin,那么您最初是从哪里想到使用.validate() 方法的?

标签: javascript jquery jquery-validate


【解决方案1】:

我在这里找到了一个不错的 jquery 验证插件 http://bassistance.de/jquery-plugins/jquery-plugin-validation/

或者您可以使用 html5 验证。 &lt;input type='text' name='name' id='name' required/&gt;

【讨论】:

  • 对 HTML5 有什么要求吗?我使用谷歌浏览器作为我的浏览器。只要支持HTML5就行了?
  • w3schools.com/html/tryit.asp?filename=tryhtml5_input_required 看到这个链接.. 在那里你可以编辑和检查你的代码.. chrome 支持 html5。要创建 html5 网页,您必须将文档类型声明为
【解决方案2】:

引用 OP 评论:

“我以为点击下载 jquery 会给我整个包。”

没有“包”。 jQuery 是一个 JavaScript 框架。 (这是一个单一的 JavaScript 文件,仅此而已。它不可能包含地球上的所有插件。)Refer to jQuery API documentation to see the only methods that are provided

jQuery Validate 是一个第三方 jQuery 插件,不是jQuery 内置的方法。 (可能有millions of third-party jQuery plugins。)


您必须始终首先包含 jQuery,然后再包含任何第三方插件。

<script type="text/javascript" src="your-path-to/jquery.min.js"></script>
<script type="text/javascript" src="your-path-to/jquery.validate.min.js"></script>

从 CDN here 下载或热链接到 jQuery Validate v1.11.1。

您只需要使用插件的缩小版或未缩小版...不能同时使用两者。除非您正在修改代码或想阅读代码,否则请使用缩小版。


只有在之后你包含了 jQuery 和 jQuery 插件,你才会包含你自己的 jQuery 代码。

对于您提供的 HTML 标记,您的代码看起来是正确的,但您应该将其包含在 DOM 就绪事件处理程序中,以确保在触发您的函数之前 HTML 已就绪。

<script type="text/javascript">
    $(document).ready(function() {  // ensures HTML markup has been constructed

        $("#sample_form").validate({
            rules: {
                name: "required"
            },
            messages: {
                name: "This field is required."
            }
        });

    });
</script>

【讨论】:

  • 问题,是否有一个选项来验证密钥?不是当我点击提交时,因为我也在做服务器端验证。客户端和服务器端,如果我在提交表单时进行验证,那么这将是多余的,因为我可以在控制器上验证然后返回视图。
  • 请看我会编辑我的问题。添加验证后出现问题。
  • @user3432132,使用这个插件,验证是在每个keyup,默认情况下。
  • @user3432132,您的编辑是一个全新的问题。动态添加输入字段时,每个必须有唯一的name属性;并且您必须声明规则它是使用.rules('add') 方法或通过内联属性创建的。
【解决方案3】:

您需要加载 jQuery 和 jQuery Validation Plugin。

jQuery 验证插件可在jqueryvalidation.org 获得

【讨论】:

    【解决方案4】:

    如果问题始终是该字段是否需要,您可以为此使用优雅的解决方案。这适用于最新的浏览器。

    http://www.the-art-of-web.com/html/html5-form-validation/

    【讨论】:

    • 这不是问题的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2011-10-17
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    相关资源
    最近更新 更多