Нахождение текста и выполнение операции на основе его существования - PullRequest
1 голос
/ 02 июня 2009

Я пытаюсь изучить jQuery, но он идет медленно, потому что я действительно не знаю JavaScript.

Мой сайт находится в VB.NET, и я размещаю код jQuery как на моем .ascx UserControl, так и в отдельном файле (что-то вроде myscripts.js). Это потому, что я использую веб-формы, так как я до сих пор недостаточно хорошо знаю MVC, чтобы реализовать его, поэтому мне нужно получить на странице идентификатор клиента.

Я хотел бы сделать следующее:

  1. Захватить текст из текстового поля и сделать его строчными.
  2. Получить имя пользователя из информации для входа. Я сделал это так на моей настоящей странице:

    var userName = "<%=Split(System.Web.HttpContext.Current.User.Identity.Name.ToLowerInvariant, '|')%>";
    
  3. Проверьте, есть ли имя пользователя в тексте. Если это в тексте, я хочу установить переменную на «ложь», а в противном случае на истину.

Как мне это сделать?

Ответы [ 6 ]

4 голосов
/ 02 июня 2009

Я совершенно не осведомлен о ASP.NET стороне, но что касается jQuery и Javascript ....

Чтобы получить значение текстового поля, вы используете функцию jQuery val():

var value = $('#mytextbox').val();

Чтобы перевести строку в нижний регистр, вы используете метод строки toLowerCase():

var value = $('#mytextbox').val().toLowerCase();

Поскольку val() возвращает строку, мы можем бросить ее в конце.

Чтобы проверить, находится ли строка в другой строке, вы используете строковый метод indexOf():

var needle = 'Hello';
var haystack = 'Hello World';
var match = haystack.indexOf(needle); // -1 if no matches, 0 in this case
1 голос
/ 02 июня 2009

Также следует помнить, что ASP.NET переименовывает все ваши идентификаторы элемента управления. Чтобы получить доступ к своим элементам управления в JavaScript, вместо идентификатора элемента управления <% = txtUserName.ClientID%> следует использовать следующее.

В jQuery вот как будет выглядеть мой селектор для текстового поля с идентификатором "txtUserName".

$ ('# <% = txtUserName.ClientID%>')

Наслаждайтесь,

Zach

1 голос
/ 02 июня 2009
var userName = "username as it comes out of your web app";

// stuff happens

var $myTextbox = $('#ID_of_textbox');
var userNameIsContained = $myTextbox.val().toLowerCase().indexOf(userName) >= 0;

Краткое объяснение:

$('#ID_of_textbox')  // fetches the jQuery object corresponding to your textbox
.val()               // the jQuery function that gets the textbox value
.toLowerCase()       // self explanatory
.indexOf()           // returns the position of a string in a string (or -1)

См. Ссылку на строку JavaScript в w3schools .

Альтернатива (чтобы проверить, равно ли значение текстового поля имени пользователя):

var userNameIsEqual = $myTextbox.val().toLowerCase() == userName;
0 голосов
/ 02 июня 2009
if ($("#textBoxID").val()) != "") { /*Do stuff*/ }
0 голосов
/ 02 июня 2009
function checkLogin(userName){
    return $('#mytextbox').val().toLowerCase() == userName
}
0 голосов
/ 02 июня 2009

Основы JQuery таковы: найдите список элементов dom и выполните над ними действия.

В вашем случае вы должны начать с поиска элемента dom, который является вашей тестовой коробкой. Для примера, мы выберем $ ('# userName'). Селектор # означает «id» и вместе с именем «userName» находит все элементы с идентификатором «userName». (Идентификаторы на странице должны быть уникальными, если вы следуете рекомендациям.)

Когда у вас есть этот список (в данном случае список из одного элемента), вы можете спросить его, каково значение.
$ ( '# Имя_пользователя'). Вал ()

Получает значение атрибута value = "" входного тега.

Затем вы можете присвоить его переменной и использовать стандартные функции String javascript, чтобы сделать все остальное!

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