jQuery验证 - 在点击时使用验证,而不是在提交时使用

时间:2009-08-27 14:19:50

标签: asp.net javascript jquery

我正在使用(或试图)JQuery Validation使用WebForms / html。

我基本上(简化真正的html,仅显示元素):

<input id="txtEmail"/>
<input id="txtTicketID"/>
<a id="create" href="#">Create a new ticket</a>
<a id="find" href="#">Find this ticket</a>

验证/操作的javascript在这里:

$(function() {
    $("#aspnetForm").validate({
        rules: {
            txtEmail: {
                required: true,
                email: true
                ,
                messages: {
                    required: "* enter your e-mail",
                    email: "*  invalid e-mail"
                }
            },
            txtTicketID: {
                required: true,
                digits: true,
                messages: {
                    required: "*",
                    digits: "* invalid ticket"
                }
            }
        },
        onfocusout: true,
        onkeyup: true,
        onsubmit: false,
        debug: true
    });

    $("#create").click(function() {
        if ($("#aspnetForm").valid()) {
            var email = $("#txtEmail").val();
            if (email != "")
                window.location = "CreateTicket.aspx?email=" + email;
        }
    });

    $("#find").click(function() {
        if ($("#aspnetForm").valid()) {
            var email = $("#txtEmail").val();
            var ticketID = $("#txtTicketID").val();
            if (email != "" && ticketID != "")
                window.location = "DetailEditTicket.aspx?email=" + email + "&ticketID=" + ticketID;
        }
    });
});

它根本不起作用..链接上的valid()单击总是返回true,即使字段为空或错误。

当我输入内容,模糊等时,没有任何东西可以进行验证。

你看到这个缺少什么吗?

2 个答案:

答案 0 :(得分:4)

validate(rules:{})采用由name:{object}模式组成的选项,您传递的是id:{object}模式。尝试:

<input id="txtEmail" name="txtEmail"/>
<input id="txtTicketID" name="txtTicketID"/>
<a id="create" href="#">Create a new ticket</a>
<a id="find" href="#">Find this ticket</a>

答案 1 :(得分:0)

您可能错过了一些代码,但看起来您正在调用“有效”功能,但您已将其设置为“验证”。因此,验证电子邮件和票证ID的功能根本没有运行。