0

在我早上的大部分时间里,我一直在寻找答案,我一定没有使用正确的搜索词,因为我找不到任何接近我所追求的东西。

这可能很容易,也可能需要一些 JS,我不确定,因为我从来没有在项目中这样做过。

基本上我有一些员工资料,每个资料都有一个指向联系页面的链接。

<a href="contact_form">Contact Steve</a>

在“contact_form”上会有一个带有员工姓名的选择设置,我想知道有没有一种方法可以通过 url 传递信息来更改选择状态以自动在选择状态下显示正确的名称。

<select name="Recipient">
        <option selected="selected" value="reception">Reception</option>
        <option value="steve">Steve</option>
        <option value="bob">Bob</option>
        <option value="john">John</option>
</select>

因此,在这种情况下,当用户点击“联系史蒂夫”时,他们会进入选择“史蒂夫”而不是默认选择的“接待”的表单。

谢谢

4

3 回答 3

2

使用此答案getQueryString中的功能。您可以执行以下操作:

function getQueryString() {
  var result = {}, queryString = location.search.substring(1),
      re = /([^&=]+)=([^&]*)/g, m;

  while (m = re.exec(queryString)) {
    result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
  }

  return result;
}

window.addEventListener("load", function() {
    document.getElementById('contact-list').value = getQueryString()['contact'];
});

请注意,您必须设置选择元素的 ID,例如:

<select name="Recipient" id="contact-list">

现在,您可以使用 URL 指定要选择的联系人:

contact_form.html?contact=steve
于 2012-11-01T22:53:18.607 回答
0

当您重定向到联系表单时,请提供一些 GET 参数,例如:?rep=steve

// 编辑:或者如果已经在联系表单中完成了点击,则使用我之前提供的解决方案 // 编辑

在联系表单上,使用 javascript:

var $_GET = [];
var get_arr = document.location.search.replace('?','').split('&');

for(var prm in get_arr){
dbl = get_arr[prm].split('=');
$_GET[dbl[0]] = dbl[1];
};

然后使用 jQuery 例如做:

$(function() {
if ( typeof($_GET['rep']) != 'undefined' ) {
$('select[name="Recipient"] option:eq("'+$_GET['rep']+'")').attr("selected","selected");
};
});

可能包含一些语法错误,未经检查。

于 2012-11-01T22:48:21.367 回答
0

使用jQuery:

<a data-id="steve" href="#contact_form">Contact Steve</a>

...

$("a").click(function() {
   $("select[name=Recipient]").val($(this).data("id"))
})
于 2012-11-01T22:47:02.043 回答