#jquery
#jquery
Вопрос:
Я откуда-то взял следующий скрипт, который очищает все элементы управления вводом в форме ‘mainFrm’:
$(':text , textarea , #mainFrm').val('');
$('select option:nth-child(1) , #mainFrm').attr('selected', 'selected');
$(':checkbox , :radio , #mainFrm').removeAttr('checked');
Это работает действительно хорошо, но проблема в том, что очищает все элементы управления, независимо от того, что некоторые из них могут быть отключены. Я хотел бы очистить только включенные, оставив только отключенные. Как я могу это сделать? Я попытался изменить первую строку на
$(':text , textarea , enabled , #mainFrm').val('');
$(':text:enabled , textarea , #mainFrm').val('');
$(':enabled, text , textarea , #mainFrm').val('');
но ни один из них не работал. Может кто-нибудь, пожалуйста, помочь мне с этим?
Ответ №1:
Вам нужно отфильтровать другие ваши селекторы:
$('(input:text , textarea , #mainFrm):enabled')
Ответ №2:
Существует специальный селектор, как раз для этого случая: http://api.jquery.com/enabled-selector /
Комментарии:
1. Он знает об этом, но не знает, как это использовать.
2. $(‘:enabled’).val(«); должен работать. Добавление ‘text, textarea’ и всего прочего изменит каждый из этих типов, а не только включенные. Запятая в селекторе — это дополнительные селекторы, не основанные на тех, которые были до него.