我试过在这里寻找解决方案,但没有任何工作,所以我在这里发帖。对不起,如果它已经存在。
我有一个选项列表,其中使用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>
从数据库中提取每个领导者名称(第一个和最后一个)并将其显示为选择框。
我正在尝试这样做,以便当选择一个时,它会显示在已选择该名称的下一页上。
如果选择了某位潜在客户,则网址如下所示:http://example.com/page?leader=First%20Last
我正在从URL中提取名称:
var leader_param = GetURLParameter('leader');
在此之前使用其他一些代码来分隔链接,当我提醒()leader_param时,我得到“First%20Last”。所以我知道那部分是100%工作的。
现在,在尝试获取当前选定的领导者时,我认为最好的方法是将URL名称与选项列表中的值进行比较。从我所读到的,我最接近的是:
if (typeof leader_param != 'undefined') {
$("select[name='leader_select']").val(leader_param);
}
但所有这一切都是使第一个选项成为选定的选项。我非常喜欢这里,非常感谢任何帮助。
非常感谢你!
答案 0 :(得分:1)
确保你正在解密param:
var leader_param = decodeURIComponent( GetURLParameter('leader') );
它会将First%20Last
转换为First Last
,而您value
的{{1}}属性具有第二个值,而不是第一个值。
答案 1 :(得分:0)
试试这个
$("yourSelect").find(" option[value='" + leader_param + "']").prop('selected', 'selected');
或
$("yourSelect").find(" option[value='" + decodeURIComponent(leader_param) + "']").prop('selected', 'selected');
答案 2 :(得分:0)
假设变量leader_param
中的值正确,您可以使用prop()
方法将相应的选项设置为选中:
if (leader_param) {
$("select[name='leader_select']").find("option[value='"+leader_param+"']").prop("selected",true);
}