2012-11-01 28 views
0

我一直在衝浪回答這個在我大部分時間的早上,我必須不使用正確的搜索條件,因爲我無法找到任何接近什麼後im即時。HTML表單 - 改變鏈接的選擇狀態

它可能是一些可能很容易或可能需要一些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> 

因此,在這種情況下,當用戶點擊「聯繫史蒂夫」,當他們到了那「史蒂夫」被選中,而不是被默認選中「接收」的形式。

由於使用jQuery

+0

你能澄清一下,如果鏈接轉到另一頁,或在同一頁上的聯繫表單? – acowley

+0

對不起,配置文件是在不同的頁面上,即時通訊設法弄清楚如何通過URL傳遞的東西來改變不同頁面上的窗體上的選擇狀態,即時通訊只是看一些迴應 – webmonkey237

+0

你不應該有根本不使用Javascript,而這樣做是不必要的依賴。你沒有說工作人員個人資料頁面是如何構建的,但我認爲它基本上是一個模板,其中名爲「Steve」的工作人員信息被替換。你也可以在鏈接中同時設置一個查詢參數,例如'Contact ${first_name}'(或者你的*服務器端技術的語法) –

回答

2

使用this answergetQueryString功能。你可以做到以下幾點:

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 
+0

謝謝,這很完美! – webmonkey237

0

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

... 

$("a").click(function() { 
    $("select[name=Recipient]").val($(this).data("id")) 
}) 
0

當您重定向到聯繫的形式,提供一些GET參數,如:? 代表=史蒂夫

//編輯:OR如果點擊已經以聯繫方式完成,然後使用我之前提供的解決方案//編輯

在聯繫表單上,使用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"); 
}; 
}); 

可能包含一些語法錯誤,聽之任之。