Получить текст, введенный в текстовое поле при потере фокуса с помощью jQuery - PullRequest
0 голосов
/ 19 января 2012

Как я могу получить значение, введенное в текстовое поле ниже?

<tr>
    <td class="TextBold" >1.</td>
    <td class="TextBold" >Content for Question 1:</td>
    <td class="TextBold" >
      <input name="ctl00$DefaultContent$ctl2" type="text" class="TextNormal" />
    </td>
  </tr>

Это дает мне имя текстового поля:

var idT = $("td:contains('1.')").next().next().children().eq(0).attr('name');

Теперь я хотел бы написать функцию, которая выдаст значение, введенное в текстовое поле.

Что-то вроде:

 $('input[name^=ctl00$DefaultContent$ctl2]').blur(function () {
        alert($(this).val());    
    });

Это сработало для меня:

 $('input[name="' + idT + '"]').blur(function () {
            alert($(this).val());    
        });

Ответы [ 2 ]

3 голосов
/ 19 января 2012
$('input[name=' + id+ ']').blur(function () {
    alert($(this).val());
});

Обратите внимание, что ваше имя переменной id, но его значение есть имя ... почему?

Я бы изменил на:

var id = $("td:contains('1.')").next().next().children().eq(0).attr('id');

$('#' + id).blur(function () {
    alert($(this).val());
});

JSFiddle пример

Вам необходимо "escape" $ с \\$, чтобы использовать его с селекторами jquery.

2 голосов
/ 19 января 2012

$('input[name="ctl00$DefaultContent$ctl2"]').val() должен дать вам значение текстового поля, но действительно ли это имя "ctl00 $ DefaultContent $ ctl2"?

См. jsFiddle

...