1

jQuery 验证在我用来验证表单的代码中不起作用。

我使用了 PureMVC,并在 index.html 文件中使用了从 ajax 请求加载的contact.html 文件。如果我在单击按钮时发出 javascript 警报,那么我可以看到它们,但它们不会在单击按钮时进行任何验证

$("#contactUsSubmit").live('click', function() {

                $("#contactForm").validate({
                    errorLabelContainer: $("#contactAlert ul"),
                    rules: {
                        contactName: {
                            required: true,
                            minlength: 6
                        }
                    }
                });

            });

有人知道我在这段代码中做错了什么。#contactname 是 contactName 的 ID

4

3 回答 3

0

那么该live('click', (...)函数是否被正确调用?JQuery 1.9 删除了 .live 函数。

于 2013-02-20T11:15:56.897 回答
0

你的代码:

$("#contactUsSubmit").live('click', function() {
    $("#contactForm").validate({
        //options,
        ...
    });
});

你不应该那样实现它。您只是在每次点击时初始化插件。直到第一次单击初始化插件后才会发生验证(然后第二次单击将验证。该插件已经内置了click事件处理程序,并且会自动捕获。

.validate()应该在准备初始化插件的 DOM 中调用一次。

$(document).ready(function() {

    $("#contactForm").validate({
        //options,
        rules: {
            contactName: {
                required: true,
                minlength: 6
            }
        }
    });

});

请注意,该name属性对于所有输入元素都是必需的:

<form id="contactForm">
    <input type="text" name="contactName" id="contactName"/>
    <input id="contactUsSubmit" type="submit" />
</form>

播放您的表单演示:http: //jsfiddle.net/FfJCV/

于 2013-02-20T15:57:59.470 回答
-1

我认为它对您不起作用可能是因为您的表单字段上必须有名称元素。查看这个 PUREMVC 示例,它没有字段元素的名称。

编辑 url 粘贴在下面,因为编辑器有问题

这段代码没有理由不起作用,请注意,您必须调用 valid() 才能立即查看任何错误消息。

$("#contactUsSubmit").live('click', function() {

    $("#contactForm").validate({
        errorLabelContainer: $("#contactAlert ul"),
        rules: {
            contactName: {
                required: true,
                minlength: 6
            }
        }
    });
    // call valid to see errors
    $("#contactForm").valid();

});

纯 Mvc 示例 http://darkstar.puremvc.org/content_header.html?url=http://puremvc.org/pages/demos/TS/PureMVC_TS_Demo_EmployeeAdmin&desc=PureMVC%20TypeScript%20Demo:%20Employee%20Admin

于 2013-02-20T16:50:01.797 回答