我试着在这里寻找解决方案,但什么都不起作用,所以我在这里发布了一个。抱歉,如果它已经存在。
我有一个选项列表,其中包含使用PHP(Twig)添加的值,如下所示:
<select class='form-control input-sm leader-select' name='leader_select' id='leader-select' style="height:42px;width:115%;">
<option selected disabled>Leaders</option>
{% for leader in leader_list %}
<option id='{{ leader.mold_maker }}' class="leader-options" value='{{ leader.mold_maker }}'>{{ leader.mold_maker }}</option>
{% endfor %}
</select>
它从数据库中提取每个引线名称(第一个和最后一个),并将它们显示为一个选择框。
我正在努力使它,当一个被选中时,它会显示在下一个页面上,并且该名称已经被选中。
如果选择了引线,则URL如下所示:http://example.com/page?leader=First%20Last
我从URL中提取名称,如下所示:
var leader_param = GetURLParameter('leader');
在此之前还有一些其他代码来分隔链接,当我alert()leader_param时,我会得到"First%20Last"。所以我知道这个部分100%有效。
现在,当试图获得当前选择的领导者时,我认为最好的方法是将URL名称与选项列表中的值进行比较。根据我所读到的,我拥有的最接近的东西是:
if (typeof leader_param != 'undefined') {
$("select[name='leader_select']").val(leader_param);
}
但所要做的就是使第一个选项成为选定的选项。我被困在这里,非常感谢任何帮助。
提前非常感谢!
确保您正在对param:进行解码
var leader_param = decodeURIComponent( GetURLParameter('leader') );
它会将First%20Last
转换为First Last
,并且您的<option>
的value
属性的值与第二个值类似,而不是第一个值。
请参阅:decodeURIComponent
假设变量leader_param
中的值正确,则可以使用prop()
方法将相应的选项设置为所选选项,如:
if (leader_param) {
$("select[name='leader_select']").find("option[value='"+leader_param+"']").prop("selected",true);
}
尝试这个
$("yourSelect").find(" option[value='" + leader_param + "']").prop('selected', 'selected');
或
$("yourSelect").find(" option[value='" + decodeURIComponent(leader_param) + "']").prop('selected', 'selected');