2009-06-01 4 views
1

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

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

То, что я хотел бы сделать, это следующее:

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

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

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

ответ

4

Я совершенно невежественны в сторону 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 
+0

ahhh ok ... это полезно, спасибо! – Jason

0

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

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

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

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

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

+0

, что часть проблемы я думаю ... я не знаю, стандартный JavaScript Строковые функции: \ – Jason

1
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 String object reference at w3schools.

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

var userNameIsEqual = $myTextbox.val().toLowerCase() == userName; 
+0

проверяет, не содержит ли это имя пользователя или имя пользователя? текстовое поле будет содержать другой текст ... Я хочу, чтобы имя пользователя находилось внутри всей строки ... – Jason

+0

Это проверит, является ли значение текстового поля * * именем пользователя. Я отправлю альтернативу, чтобы проверить, содержит ли она * имя пользователя. – Tomalak

0
function checkLogin(userName){ 
    return $('#mytextbox').val().toLowerCase() == userName 
} 
0
if ($("#textBoxID").val()) != "") { /*Do stuff*/ } 
1

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

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

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

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

Zach

+0

Да, я делаю это уже. это полезный намек, спасибо! – Jason

Смежные вопросы