2015-01-07 3 views
-2

Мне нужно прокрутить определенные поля ввода формы в сетке и применить атрибут «disabled». Все эти конкретные имена полей ввода и идентификатора начинаются с «dept_», за которым следует число. Например:jquery to Loop через определенные поля ввода формы?

dept_10 
dept_11 
dept_789 

я могу сократить переработку, так как я хочу только поля, которые не имеют «заблокировано» атрибут уже применен, что некоторые из них будут.

Каким будет любой jquery, чтобы это сделать?

+0

что вы имеете в виду начать с «dept_»? текст, имя, идентификатор или что? – juvian

+0

Имена атрибутов name и id начинаются с «dept_». – 4thSpace

ответ

1

Вы можете использовать [attr^=] селектор для фильтрации, начиная с, и :enabled для фильтрации не инвалидов входы, то просто отключить каждый один:

$("input[id^='dept_']:enabled").each(function(){ 
    $(this).prop('disabled', true); 
}) 
+0

Это отлично работает! Короче и точно. Благодарю. – 4thSpace

+0

Без проблем, удачи! – juvian

1

Вы можете захватить все входы форм, фильтровать по ID (или имени), а затем отключить их.

$('#the-form').find('input').filter(':enabled').filter(function() { 
    return /^dept_/.test($(this).attr('id')); 
}).prop('disabled', true); 

Если вы хотите, чтобы соответствовать любому входному подобному элементу (например, <textarea>), вы можете использовать .find(':input') вместо .find('input').

Кроме того, если вы хотите быть очень строгим в отношении формата ID, вы можете использовать /^dept_[\d]+$/.test(...).