2009-12-07 2 views
2

Я использую модальный параметр для установки значения по умолчанию для серии полей текстовых полей. Тем не менее, я хочу установить поле только по умолчанию, если значение уже не существует. Есть ли способ сделать это с помощью селектора jQuery?Значение jQuery, установленное только в том случае, если пусто

Текущий код

var fooVal = $('#cboxLoadedContent').find('#SetFoo').val(); 
var barVal = $('#cboxLoadedContent').find('#SetBar').val(); 
$('.foo').val(fooVal); 
$('.bar').val(barVal); 

ответ

7
$(".foo[value='']").val(fooVal); 

EDIT: Как уже упоминалось Джонатаном, если Youre использованием более текстовых данных, для этого вы собираетесь должны быть немного более продвинутый ... особенно с некоторыми тегами, но и флажки, радио и текстовых областей ,

+1

'$ ('. Foo [value =" "]'). Val (fooVal);' работает в IE, но не в Firefox, а '$ (". Foo [value = ''] "). Val (fooVal); 'работает в обоих. Почему это? – ahsteele

+0

Я понятия не имею ... я всегда делаю это последним способом, поэтому я никогда не замечал этого раньше. – prodigitalson

0

Вы можете использовать :text[value=''] найти все пустые текстовые поля.

+0

Хорошая точка ... Это не очень надежное средство для управления всеми видами элементов управления формой. – prodigitalson

1
$("input.foo[type=text][value='']").val(fooVal); 
$("input.bar[type=text][value='']").val(barVal); 

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

+1

Фактически вы можете просто использовать $ (". Foo: text [value = '']"). Val (fooVal); Существуют специальные селекторы псевдокласса для различных элементов управления формой и выбраны/отмечены. – prodigitalson

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