2012-02-26 7 views
1

Я ищу, чтобы отключить все элементы (элементы управления) указанных столбцов таблицы (td) с помощью jQuery.Отключить все элементы управления столбцом таблицы, используя jQuery

Моя таблица выглядит следующим образом:

<table> 
    <tr> 
    <td id="1.1.tcol"></td> 
    <td id="1.2.tcol"></td> 
    <td id="1.3.tcol"></td> 
    <td id="1.4.tcol"></td> 
    </tr> 
    <tr> 
    <td id="2.1.tcol"></td> 
    <td id="2.2.tcol"></td> 
    <td id="2.3.tcol"></td> 
    <td id="2.4.tcol"></td> 
    </tr> 
</table> 

таблица генерируется динамически, но это, как он отображается как. Теперь каждый из моих <td> имеет несколько элементов управления, таких как select, checkbox, buttons, но не фиксируется для каждой строки и столбца. Я хочу отключить все элементы управления указанного <td>, используя его идентификатор.

Я использовал следующий JQuery, но это не seemt сделать работу:

$('#' + td_id).select('*').each(function(element){element.disabled=true});

Я также попытался следующие, до сих пор это не похоже на работу:

$('#' + td_id).attr('disabled', 'false');

Я делаю что-то неправильно? Пожалуйста помоги.

Спасибо!

ответ

2

попробовать это

$('#' + td_id).find(':input').prop("disabled", true); 

:input выбрать все элементы ввода

+0

Кажется не работает. Также не все элементы управления имеют тип «вход». Есть выделенные выпадающие списки, текстовые поля, кнопки, флажки. – Anupam

+1

PLS проверить ссылку в ответе .. он выбирает все элементы ввода –

+0

К сожалению ... извините. Не знал, что: input выбирает все элементы управления. Думал, что он выбирает только типы ввода. Но предоставленный вами код не отключается. :( – Anupam

0

, если вам необходимо отключить все элементы управления в колонке (multilpe строк) Я думаю, что лучший способ, чтобы присвоить класс каждый td в этой колонке.

Для нелогич-, если вы хотите отключить элементы управления во втором столбце, вы можете сделать что-то подобное:

<table> 
    <tr> 
    <td id="1.1.tcol"></td> 
    <td id="1.2.tcol" class="col-2"></td> 
    <td id="1.3.tcol"></td> 
    <td id="1.4.tcol"></td> 
    </tr> 
    <tr> 
    <td id="2.1.tcol"></td> 
    <td id="2.2.tcol" class="col-2"></td> 
    <td id="2.3.tcol"></td> 
    <td id="2.4.tcol"></td> 
    </tr> 
</table> 

Чем, с помощью JQuery вы можете сделать это:

$(".col-2 :input').prop("disabled", true); 

Он должен работать. ..

0

Я думаю, что это должно работать:

<table> 
<tr><td> 
    <input type="text" /> 
    <input type="radio" /> 
    <input type="checkbox" /> 
    <select> 
     <option>1233</option> 
    </select> 
    </td> 
</tr> 
<tr><td> 
    <input type="text" /> 
    <input type="radio" /> 
    <input type="checkbox" /> 
    <select> 
     <option>second</option> 
    </select> 
    </td> 
</tr> 

Теперь, чтобы отключить только первый "тд" Вы должны использовать:

$('tr').children().eq(0).find(':input').prop("disabled", true); 

Если вы используете JQuery1.6 или выше использования реквизита() еще использование атр().

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

  • Нет связанных вопросов^_^