2013-08-30 56 views
1

我有用戶與附加到URL像預先選擇一個項目從下拉使用哈希標籤

mysite.com/registration#johnjackson 

一個#tag取決於被點擊一下鏈接的井號標籤附加進入註冊頁面進入註冊頁面。字符串總是小寫字母和修剪。

在註冊頁面上有一個下拉列表,我想使用js預選。它看起來像這樣:

<select> 
<option value="Sara Rush, Singer">Sara Rush, Singer</option> 
<option value="John Jackson, painter">John Jackson, painter</option> 
<option value="Albert Einstein, Pilot">Albert Einstein, Pilot</option> 
</select> 

我正在尋找一個很好的解決方案。也許只是通過選項值列表來檢查前5-7個字符是否與hashtag字符串匹配?

+1

爲什麼不只給選項標籤一個與hashtag的錨定值相關的id?從那裏,'$(「#selectID」)。val(「johnjackson」);'(你必須給你的選擇標籤一個ID) –

+0

我沒有控制頁面的鏈接,但那當然會更有意義。 –

回答

0

這樣的事情呢?

var hash = window.location.hash; 
var regex = new RegExp(hash, 'g'); 
$('option').each(function() { 
    var val = $(this).attr('value').toLowerCase(); 
    var matches = val.match(regex); 
    if (matches) { 
    $(this).attr('selected', 'selected'); 
    } 
}); 
+0

謝謝,我認爲這幾乎是它。問題是這些值包含逗號和標題等 - 而哈希字符串只包含名稱。所以只檢查前7個字符就可以了。 順便說一句,因爲我不是很好正則表達式 - 這是否從標籤字符串剝離「#」? –

+0

是的,它只給你沒有#的價值。我故意留下來簡單地展示一個實際的例子,並由你決定比較的級別。例如,如果您希望可以小寫並從兩個值中剝離空格和逗號,然後對其進行比較。如果你沒有去掉空格和逗號,7個字符的名字會很短。 – Vlad

相關問題