javascript - 基于 URL 参数的当前选项 "selected"

标签 javascript jquery html

我尝试在这里寻找解决方案,但没有任何效果,因此我在这里发布一个解决方案。抱歉,如果它已经存在。

我有一个选项列表,其中使用 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);
  }

但所做的只是使第一个选项成为选定的选项。我被困在这里,非常感谢任何帮助。

提前非常感谢您!

最佳答案

确保您正在对参数进行解码:

var leader_param = decodeURIComponent( GetURLParameter('leader') );

它将转换First%20LastFirst Last而你value你的属性<option> s 具有像第二个一样的值(value),而不是第一个。

see: decodeURIComponent

关于javascript - 基于 URL 参数的当前选项 "selected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26367490/

相关文章:

javascript - 检查数组中是否存在值(AngularJS)

javascript - 一般来说,在 javascript 中,使用innerHTML 不是一个安全问题吗?

javascript - 想要输出直观的价格

javascript - 来自链接的简单 JQuery UI 对话框

html - 如何在轮播中完全适合图像(Bootstrap)

javascript - 获取简单 GET 请求的 NS_BINDING_ABORTED 错误

javascript - 检测 html 元素何时退出屏幕

javascript - 表单字段值未正确传递到 JSON 对象

jquery - 延迟jQuery中的点击功能

html - 用于在表格中对标题进行分组的 HTML5 标记是什么?