.click () не работает.Jquery - PullRequest
       5

.click () не работает.Jquery

1 голос
/ 14 октября 2011

В моем login.aspx я пытаюсь выполнить простую проверку на стороне клиента (проверьте, что поля «Имя пользователя» и «Пароль» не заполнены) нажатием кнопки. Но .click () в jquery не запускается. Куда я иду не так?

Примечание: у меня есть событие LoginButton_Click на код, который имеет некоторые функции.

<script src="Scripts/Login.js" type="text/javascript"></script>

 <td align="right" colspan="2">
     <asp:Button ID="LoginButton" runat="server"  Text="Log In" 
       onclick="LoginButton_Click" class ="validateForm" />
</td>

Мой файл login.js:

$(function () {

  $('#LoginButton').click(function () {

            var username = $('#txtUserName');
            var pwd = $('#txtPassword');
            if (username.val().length <= 0) {
                alert("User Name is required.");
                return false;
            }
            if (pwd.val().length <= 0) {
                alert("Password is required.");
                return false;
            }

        });
});

Заранее спасибо

BB

Ответы [ 5 ]

4 голосов
/ 14 октября 2011

$("#<%= LoginButton.ClientID %>") не работает с внешними файлами JavaScript. Если вы хотите использовать внешний файл, создайте глобальную переменную в файле aspx и получите доступ к ней в файле JavaScript.


Edit:

создать глобальную переменную в файле aspx.

var loginButtonId = <%= LoginButton.ClientID %>;

используйте его в файле JavaScript

$("#" + loginButtonId ).click(function () {...});

примечание: переменная должна быть объявлена ​​перед добавлением ссылки на файл JavaScript.

2 голосов
/ 14 октября 2011

Это не должно доставлять вам никаких проблем, используя селекторы jquery, мы выбираем его по его атрибуту id, который заканчивается LoginButton.

$(function () {
  $("input[id$=LoginButton]").click(function () {

            var username = $("input[id$=txtUserName]");
            var pwd = $("input[id$=txtPassword]");
            if (username.val().length <= 0) {
                alert("User Name is required.");
                return false;
            }
            if (pwd.val().length <= 0) {
                alert("Password is required.");
                return false;
            }

        });
});
1 голос
/ 14 октября 2011

#LoginButton не существует.Когда кнопка asp будет обработана, она будет преобразована в специальный идентификатор, связанный с элементами управления ASP, которые содержат его, например ctrl00_mycontrol_panelid_LoginButton.Чтобы перенести это во внешний файл, вам нужно использовать глобальную переменную:

var loginButtonID;
var txtUserNameID;
var txtPasswordID;

$(function () {

  $(loginButtonID).click(function () {

            var username = $(txtUserNameID);
            var pwd = $(txtPasswordID);
            if (username.val().length <= 0) {
                alert("User Name is required.");
                return false;
            }
            if (pwd.val().length <= 0) {
                alert("Password is required.");
                return false;
            }

        });
});

Затем в файле, который включает этот файл login.js, вам нужно установить эти переменные, вызвав:

<script type="text/javascript">

loginButtonID = '<%=LoginButton.ClientID%>';
txtUserNameID = '<%=txtUserName.ClientID%>';
txtPasswordID = '<%=txtPassword.ClientID%>';

</script>

Убедитесь, что не переопределили их с новыми модификаторами "var".Это может испортить сферу и испортить ваш сценарий.

1 голос
/ 14 октября 2011

потому что в вашем файле .js javascript не может прочитать значение этого: $("#<%= LoginButton.ClientID %>")
Вам необходимо: - Поместить этот код в конец вашей HTML-страницы.
ИЛИ
-Поместите фиксированный селектор в файл js

1 голос
/ 14 октября 2011

Я думаю, что вы хотите onclientclick .

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclientclick.aspx

На всякий случай, если кого-то волнует ...

<script src="Scripts/Login.js" type="text/javascript"></script>

 <td align="right" colspan="2">
     <asp:Button ID="LoginButton" runat="server"  Text="Log In" 
       onclick="LoginButton_Click" onclientclick="validateLogin()" class ="validateForm" />
</td>

файл login.js:

function validateLogin() {

            var username = $('#txtUserName');
            var pwd = $('#txtPassword');
            if (username.val().length <= 0) {
                alert("User Name is required.");
                return false;
            }
            if (pwd.val().length <= 0) {
                alert("Password is required.");
                return false;
            }

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