как выбрать все входные элементы в другом ТД - PullRequest
0 голосов
/ 11 августа 2011

У меня <table>, созданный динамически во время выполнения.Эта таблица имеет три столбца:

  1. , в первом TD всегда есть элемент <input type="checkbox">
  2. , второй TD не важен
  3. втретий TD всегда есть элемент ввода HTML.Это может быть <input>, <select>

Мне нужно включить / отключить элементы ввода, которые находятся в третьем TD, когда я нажимаю на флажок, который находится на первом TD

Я знаю, как связать обработчик событий с флажком, но я не знаю, как выбрать " все элементы <input> и <select>, которые будут находиться внутри одной строки, но в третьейTD "

Это образец разметки, который у меня есть

...
<tr>
    <td>
        <input id="chkSelectField" type="checkbox" name="chkSelectField" 
             onclick="disableControl('chkSelectField');" />
    </td>
    <td valign="top">&nbsp;</td>
    <td>
        <input name="control1" type="text" id="control1" />
        <input name="control2" type="text" id="control2" />
        <select name="control3" type="text" id="control3">...</select>
    </td>
</tr>

...

Ответы [ 3 ]

2 голосов
/ 11 августа 2011

Внутри вашего обработчика кликов:

$(this).closest('tr').find('td:eq(2) :input')
1 голос
/ 11 августа 2011

Я бы сделал это:

$('td input:checkbox').click(function() {         
    var t = $(this);
    var inputs = $(this).closest('tr').find('td:eq(2) :input');
    if (t.is(':checked')) {
        inputs.attr('disabled', 'disabled');
    } else {
        inputs.removeAttr('disabled');         
    }
});

Пример - http://jsfiddle.net/R5Lck/1/

1 голос
/ 11 августа 2011

Внутри обработчика событий для флажка поставьте это:

$(this).parent().next().next().find('input,select')
...