Как получить введенное текстовое значение из td

<tr>
 <td>
      <input type="text" name="desc[]">
 </td>
 <td>
      <input type="text" name="duration[]">
 </td>
 <td>
      <input type="text" name="start[]" class="start">
 </td>
 <td>
       <input type="text" name="wait[]">
 </td>
 <td>
       <input type="text" name="end[]">
 </td>
 <td>
      <input type="text" name="phone[]">
 </td>
</tr>

У меня есть такие несколько строк. Я должен выбрать значения от всего tds на keyup событии на td с входным именем, запускаются (и я также должен избежать значений desc [] и телефон []). Так как они - многие, я не могу пойти с идентификаторами, нуждаться в помощи в родительском дочернем подходе с jQuery.

Я смог достигнуть, родительский TR на keyup событии на вышеупомянутом упомянул td, но не способный получить доступ к значениям поля ввода в другом tds. код jQuery, который я использовал

$(document).ready(function(){
    $(".start").keyup(function(){
        alert($(this).parent().get(-3).tagName);
    })
});
16
задан Felix Kling 31 March 2012 в 17:22
поделиться

3 ответа

Ах, я думаю, теперь пойму. Посмотрите, действительно ли это то, что вам нужно:

$(".start").keyup(function(){
    $(this).closest('tr').find("input").each(function() {
        alert(this.value)
    });
});

Это даст вам все входные значения строки.

Обновление:
Чтобы получить значение , а не , вы можете использовать все элементы : not () :

$(this).closest('tr').find("input:not([name^=desc][name^=phone])").each(function() {
     alert(this.value)
});

На самом деле я не уверен на 100%, работает ли это так Кстати, возможно, вам придется использовать два not вместо этого, объединяющего оба условия.

38
ответ дан 30 November 2019 в 16:24
поделиться

Мне трудно понять, что именно вы здесь ищете, поэтому надеюсь, что я не ошибся.

Я предполагаю, что вы имеете в виду, что когда происходит событие keyup на входе с классом "start", вы хотите получить значения всех входов в соседних s:

    $('.start').keyup(function() {
        var otherInputs = $(this).parents('td').siblings().find('input');

        for(var i = 0; i < otherInputs.length; i++) {
            alert($(otherInputs[i]).val());
        }
        return false;
    });
0
ответ дан 30 November 2019 в 16:24
поделиться
var values = {};
$('td input').each(function(){
  values[$(this).attr('name')] = $(this).val();
}

Не тестировали, но это должно сработать ...

{{1} }
2
ответ дан 30 November 2019 в 16:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: