2015-12-28 65 views
0

我有一個下拉菜單,當更改進入選定頁面時。但是,當該頁面加載時,我希望能夠顯示它所在的頁面。例如,如果有人點擊科羅拉多,它會移動到該頁面,但顯示的選項始終是第一個「查看全部」。如何搜索點擊的內容,然後在頁面上顯示?我知道我可以使用會話,但它是我試圖做到這一切在SharePoint相當困難...下拉突出顯示基於從網址選擇?

<select name="dropdown" onchange="javascript:location = this.options[this.selectedIndex].value;"> 
<option value="...Lists/Events/Events.aspx">See All</option> 
<option value="...Lists/Events/Colorado.aspx">Colorado</option> 
<option value="...Lists/Events/MidAtlatic%20States.aspx">Mid-Atlantic States</option> 
<option value="...Lists/Events/Pacific%20NorthWest.aspx">Pacific Northwest</option> 
</select>​ 
+1

爲什麼要使用JavaScript?你也可以在.NET中完成它,從請求對象中讀取值... –

+0

@ Mr.White hmmm我對.NET並不熟悉,我認爲JS會是最簡單的。我看着.NET,但寧願堅持JS。 – Ben

回答

1

你可以試試這個以下。當新頁面加載時,它會從url中提取相應選項的值並設置該值。

$(document).ready(function(){ 
var pageName = location.pathname.split("/")[url.split("/").length - 1]; 
$('select option').each(function() 
{ 
    if($(this).val().indexOf(pageName) != -1) 
    $('select').val($(this).val()); 
}); 

}); 

例子:https://jsfiddle.net/DinoMyte/08qyom1a/

+0

嗯,這可能適用於一個字的選項,但不是太平洋西北地區的權利? – Ben

+0

它應該是因爲實際頁面名稱的值與下拉列表的值相同。 – DinoMyte

+0

Nvm我認爲這將工作不正常只是添加:optionName.replace(「%20,」「); – Ben

1

執行它的DOM已準備就緒,

$('select[name="dropdown"] option').each(function(){ 

    var _val = $(this).val().replace("...", ""); // Fetching value and replacing ... 

    if(window.location.href.indexOf(_val)!=-1) 
     $(this).attr("selected", true); 

}); 
+0

對不起,沒有使用jQuery我可以做document.getElementById? – Ben