2012-09-11 3 views
1

У меня есть код (отредактированные после Brad Christie подсказки):JQuery добавления атрибутов для нескольких выбранных раскрывающихся

drupal_add_js(' 

jQuery(document).ready(function(){ 

jQuery("#selFinishes option").each(function(index) { 
if (jQuery(this).val() == ' . $filter_color . ') { 
jQuery(this).attr("selected","selected") 
} 
}) 

}); 
', "inline"); 

И это успешно добавляет «выбранное» атрибута ($ filter_color добавляется через PHP) к выбранному стоимость. Но когда я нацелен на несколько полей выбора, например:

drupal_add_js(' 

jQuery(document).ready(function(){ 

jQuery("#selFinishes option").each(function(index) { 
if (jQuery(this).val() == ' . $filter_color . ') { 
jQuery(this).attr("selected","selected") 
} 
}) 

jQuery("#selThemes option").each(function(index) { 
if (jQuery(this).val() == ' . $filter_theme . ') { 
jQuery(this).attr("selected","selected") 
} 
}) 

}); 
', "inline"); 

Обе петли не работают!

Спасибо за советы!

ответ

2

Код, по-видимому, смешанный javascript и php, но невозможно сказать, что может быть неправильным с ним. Вы должны проверить (просмотрев исходный код в браузере), является ли полученный javascript-код тем, что вы намеревались. Если возможно, разместите полученный javascript здесь.

+0

Ahh .. я имел значение, потому что пусто в некотором значение повода нет ... я добавил целый цикл под IsSet сначала проверить, существует ли переменная! Thanx – NenadP

1

Я получил обоснованное предположение, что полученный JavaScript недействителен, когда он выводится. Предполагая, что имена переменных ($filter_color$filter_theme) один или оба из них являются, скорее всего, строкой, производящей тест if (...val() == string), который не позволяет, чтобы весь блок JavaScript приводил к синтаксической ошибке и терпел неудачу.

Попробуйте изменить вывод заключите значение в строке (может быть что-то вроде следующего):

[snip].val() == "' . $filter_theme . '") {[/snip] 

Примечание я добавил двойные кавычки по обе стороны от переменной до и после PHP конкатенации. Это должно исправить синтаксис, если бы он заставил его работать снова.

Опять же, слишком мало информации в вашем вопросе, но это было бы мое предположение на решении

+0

Эй, Брэд, извините, теперь я редактировал вопрос, чтобы показать весь код, Javascript добавлен inline от Drupal. Когда один цикл присутствует, все работает нормально, когда оба, оба не работают ... – NenadP

+0

Брэд, это была проблема с тем, что не было получено значение php! Извините за ввод в заблуждение и спасибо! – NenadP

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