2012-09-11 84 views
1

我有代码(编辑后,布拉德·克里斯蒂建议):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

啊是我的猜测..我不得不emtpy值,因为在某些场合值不存在......我加入下isset整个循环首先检查变量是否存在! Thanx – NenadP

1

我的教育猜测是,生成的JavaScript在输出时是无效的。通过变量名猜测($filter_color & $filter_theme)其中一个(或两者)很可能是一个字符串,使得测试if (...val() == string)失败,这些问题导致整个JavaScript块导致语法错误并且完全失败。

试着改变你的输出包住一个字符串值(可能像以下):

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

通知我之前和PHP连接后加双引号的变量的两侧。这应该修复语法应该实习再次工作。

再次,信息太少了你的问题,但是这将在解决方案

+0

嘿布拉德,对不起,现在我编辑了问题以显示整个代码,Javascript是由Drupal内联添加的。当一个循环存在时,事情工作正常,当两者都失败时... – NenadP

+0

布拉德,这是没有导致PHP值存在的问题!抱歉误导你,谢谢! – NenadP

相关问题