0

我正在测试 jQuery Validate 插件,但在尝试验证控件时遇到了一些问题。我不想在页面中使用任何 FORM 元素。我正在尝试使用 css 选择器来获取元素并向其添加一些自定义规则。

这是我的代码

    <head>
    <title></title>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>
    <script src="scripts/jquery.validate.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('.custom').validate({
                rules: {
                    name: 'required',
                    email: {
                        required: true,
                        email: true
                    }
                },
                messages: {
                    name: "Please specify your name",
                    email: {
                        required: "We need your email address to contact you",
                        email: "Your email address must be in the format of name@domain.com"
                    }
                }
            });
        });

        function valid() {
            return $('.custom').valid();
        }
    </script>
    <style type="text/css">
    .error { color: Red; }
    </style>
</head>
<body>
    <form id="form" method="get" action="">
        <input type="text" name="name" class="custom" /><br />
        <input type="text" name="email" class="custom" /><br />
        <input class="submit" type="submit" value="submit" onclick="return valid();" />
    </form>
</body>

我不确定我在这里做错了什么。有人可以指出吗?jQuery.Validate 中不允许这样做吗?表单元素是验证工作的必要条件吗?

PS:如果我使用 #form ( $('#form').validate({) 作为选择器,它工作得很好。

感谢 Senthil S

4

2 回答 2

0

表单元素是验证工作的必要条件吗?

PS:如果我#form ($('#form').validate({)用作选择器,它工作得很好。

是的,您已经回答了自己的问题。

.validate()函数只能<form>在一个元素上初始化。

$('#yourform').validate({ ... })

此外,您不需要内部按钮。您也不需要调用函数来检查表单。这都是多余的。onclick="return valid();"submitvalid()

该插件已经捕获了submit事件并自动检查表单。

见:http: //jsfiddle.net/XGLYt/


引用 OP 的标题:

jQuery Validate 不适用于 CSS 选择器

是的。 #form是一个完全有效的“CSS 选择器”,它可以工作。

如上所述,您的“目标”必须是<form>元素。

于 2013-04-03T18:33:43.220 回答
0

最好使用<form>id#form选择器而不是分配给输入的类:

$('#form').validate({
于 2013-04-03T18:37:05.643 回答