2017-02-14 76 views
3

我正在使用JQuery创建动态下拉框(第二个下拉列表框中的第一个下拉选项)。我正在尝试创建一个反向用例的检查(第一个选择第二个下拉强制关联选择)。使用javascript变量设置下拉列表的所选值

我以前用这个代码成功地设置活动值:

$("#department option[value='Other']").prop('selected', true); 

现在,我试图做上述相同,但通过使用一个变量值,而不是硬编码之一。这是我到目前为止的代码:

var selected_campus = $("#college")[0].options[$("#college")[0].selectedIndex].text.split(":",1).toString(); 
$("#campus option[value=selected_campus]").prop('selected', true); 

第一线工作正常,所需的值被成功保存在selected_campus。但是,第二行不行。我如何设置#campus的选定值为selected_campus

+0

注意'split'返回一个数组,并且你将该数组强制为一个字符串。它工作的唯一原因是因为你添加了一个限制,所以你总是得到数组中的单个项目,并且希望将该数组字符串化以返回预期的结果。我会认为'split(':')。shift()'会是更好的选择吗?而使用一些数据属性来确定选项会更好。 – adeneo

+0

@ adeneo感谢您的反馈。我还是很新的,所以我没有意识到shift(),它看起来正是我所需要的! –

+0

整条线看起来很渺茫,可能有更好的方法将所有选项绑定在一起 – adeneo

回答

3

你很近;你刚才使用+和单引号'迹象,像来连接与选择(字符串)变量selected_campus

$("#campus option[value='"+selected_campus+"']").prop('selected', true); 
________________________^_^_______________^_^ 

相反的:

$("#campus option[value=selected_campus]").prop('selected', true); 

希望这有助于。

2

您需要的变量替换到代码:

$("#campus option[value='" + selected_campus + "']").prop('selected', true); 

您需要单引号的情况下,该值有空格或其他字符在它

相关问题