为什么此代码在按钮单击后未在html页面中显示任何验证错误

时间:2013-02-20 11:11:40

标签: jquery jquery-validate puremvc

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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/

答案 2 :(得分:-1)

我认为这对你不起作用可能是因为you must have name elements on your form fields。看看这个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();

});

Pure 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