Проверка jQuery - Использование проверки по клику, а не по отправке - PullRequest
3 голосов
/ 27 августа 2009

Я использую (или пытаюсь) Проверка JQuery с 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 ]

4 голосов
/ 27 августа 2009

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>
0 голосов
/ 27 августа 2009

Возможно, вы пропустили какой-то код, но похоже, что вы вызываете функцию 'valid', но вы установили ее как 'validate'. Таким образом, ваша функция проверки электронной почты и идентификаторов билетов вообще не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...