JQuery удаленной проверки с проблемами asp.net webmethod - PullRequest
0 голосов
/ 22 ноября 2010

Я использую удаленную проверку jQuery с asp.net codebehind и webservice, теперь удаленная функция нормально работает на сервере, и я возвращаю True или false JSON-ответ, но происходит следующее:

в первый раз, когда я нажимаю кнопку «Вход в систему» ​​с намеренно пустым полем, я получаю сообщение об ошибке как на стороне клиента, так и на стороне сервера, хорошо, но если я заполняю поле и пытаюсь нажать кнопку входа в систему, функция Remote работает нормально, но не на стороне клиента исообщение об ошибке не появляется, даже если поле заполнено.

Я перепробовал много поисков в сети без удачи, я был бы очень признателен, если бы кто-то мог помочь в этом.

Вот мойкод:

  $("#Login").click(function () {
                 $("#form1").validate(
                 // This prevents validation from running on every
                 //  form submission by default.
                 //  onsubmit: false

{правила: {электронная почта: {обязательно: верно,

     remote: {
        type: "POST",
        url: "WebForm1.aspx/IsValid",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: "{'username':'" + function () {
            return $("#UserName").val();
        } + "'}", success: function (msg) {
            result = (msg == '1') ? true : false;
         //   alert(msg.d); 
        }
    }


}
}
}
              );

                 var isValid = $("#form1").valid();



               alert(isValid);
             });

код на стороне сервера

     public static Boolean IsValid()
    {

        return true;
    }

1 Ответ

1 голос
/ 22 ноября 2010

Хорошо, похоже, это не влияет на ваш результат, но у вас есть 2 данных: поля.

Кроме того, вы рассматриваете remote: rule как обычный вызов jquery ajax ... это не так. У него нет успешного обратного вызова и т. Д. Это должно выглядеть примерно так.

remote: {
        type: "post",
        url: "WebForm1.aspx/IsValid",
        data: { username: function () {
            return $("#UserName").val();
                                      }
              }
        }

И ваша серверная сторона хорошо отображает "true" или "false", основываясь на том, что отправленное значение имеет значение true или false, это не выполняется с помощью обратного вызова при успешном выполнении.

Так что-то вроде

 public static Boolean IsValid()
{

  document.write("true");
}

По сути, он попадет по URL: вы дадите его, передадите ему переменные в данных: и подождете, пока истина или ложь, чтобы определить, правильный ли это код или нет. Причина, по которой проверка вашей формы работает, когда вы ничего не вставляете, заключается в том, что значение true: у вас есть проверка, если оно пустое ...

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