2016-11-14 137 views
2
<script type="text/javascript"> 
    var x = document.getElementById("mySelect").value; 
</script> 

<form action="something?val="+x enctype="multipart/form-data" method="post"> 
    <label>Select the Playlist:</label> 
    <select name="select" id="mySelect"> 
     <option value="#">----Select-----</option> 
     <option value="playlist1">Playlist1</option> 
     <option value="playlist2">Playlist2</option> 
    </select> 
    <input type="submit"> 
</form> 

現在我想,當我選擇playlist1並按提交按鈕我的網頁應該重定向到些什麼呢?VAL = playlist1..But它重定向到什麼?的VAL = ..Value x沒有打印在那裏。我找不到錯誤,請幫忙。重定向選擇的選擇輸入

+0

你怎麼輸出播放列表?它是硬編碼的嗎?用像PHP這樣的服務器腳本生成? –

回答

1

給ID到表單中,這樣更容易獲得直通JS,如:

... 
<form id="myform" action="something" enctype="multipart/form-data" method="post"> 
... 

,並使用選擇元素的change事件處理程序,以改變窗體的動作,如:

var selectEle = document.getElementById("mySelect"); 
selectEle.onchange = function(event) { 
    var selValue = event.target.value, 
    frm = document.getElementById("myform"); 
    frm.action = (selValue != "#") ? "something?val=" + selValue : "something"; 
} 
0
var x = document.getElementById("mySelect").value; 

//works just like a link 
window.location.href = "/somewhere?x=" + x; 
0

我給你你的代碼的工作流程的一點解釋:

次​​頁面加載下面一行將運行(我假設你寫你的js之後在頭)。當時你形成未呈現,因此x的值是不確定的,

<script type="text/javascript"> 
     var x = document.getElementById("mySelect").value; 
// this is not going to call automatically , when you change value of select box. 
    </script> 

一旦你的形式呈現,並更改選擇框的值需要調用一個函數來執行上面的js代碼以獲得新的值。

和其他問題是您在html中使用x的方式,x是一個javascript變量,因此它只能在標籤內使用。

<form action="something?val="+x enctype="multipart/form-data" method="post"> 

爲了您預期的結果就沒有必要用javascript簡單的HTML形式的能做到這一點,使用形式的get方法,它在URL把你輸入的名字與值自動

<form action="something" method="get"> 
    <label>Select the Playlist:</label> 
    <select name="val" id="mySelect"> 
     <option value="#">----Select-----</option> 
     <option value="playlist1">Playlist1</option> 
     <option value="playlist2">Playlist2</option> 
    </select> 
    <input type="submit"> 
</form>