2014-02-08 44 views
0

我想知道是否有可能提交表單(輸入的下拉列表),當所選值selected="selected"被點擊。我似乎無法得到它的工作。用選定的選項重新提交表格

我的代碼:

<form method="post" name='myform' id="box" action="javascript:alert('submitted')" onsubmit="if(this.f.value == -1){return false;}"> 
     <fieldset class="box_fieldset"> 
      <select name="f" id="f3" onchange="if(this.options[this.selectedIndex].value != -1){ document.forms['myform'].submit() }"> 
       <option value="-1">-- select --</option> 
       <option value="1" >one</option> 
       <option value="2" selected="selected" >two</option> 
       <option value="3" >three</option> 
      </select> 
     </fieldset> 
</form> 

隨着相應jsFiddle

正如你所看到的,因爲它已經被選中這是不可能的,以「補辦」 option 2 (警報不會被觸發)。

有沒有辦法做到這一點?

+0

使默認值別的東西,強制用戶選擇什麼?請記住,當表單發生變化時,您的表單應該提交一些內容。在該特定情況下沒有正當理由重新提交。 –

+0

爲什麼不將它默認爲你的' - select --'選項?這就是它的目的。 – Deryck

+0

@Loïc因爲我對下拉列表有特定用途:它顯示網站中的當前導航。由於網站中存在多個級別(深度),因此用戶通過重新提交所選值可以提高一級。 –

回答

0

那麼,使用另一個事件觸發器。

window.onload應該適當。

jsFiddle link

+0

請閱讀問題下方的評論。刷新不是一種選擇。 –

0

當你使用你不能處理默認值onchange事件,就像你選擇了一個(二);

<option value="-1" selected>-- select --</option> 
      <option value="1" >one</option> 
      <option value="2" >two</option> 
      <option value="3" >three</option> 
+0

那我該怎麼做呢? –

+0

你可以使用onclick事件選項 – scripter

+0

請閱讀下面的問題 –

0
<html> 
<head> 
</head> 
<body> 
<select id="slct"> 
    <option value="1" onclick="clicked(this)">one</option> 
    <option value="2" onclick="clicked(this)">two</option> 
    <option value="3" onclick="clicked(this)">three</option> 
</select> 
<script> 
    function clicked(e){ 
     var xml = new XMLHttpRequest(); 
     xml.open("GET",""+this.value,false); 
     xml.send(); 
    } 
</script> 
</body> 

使用這樣的伎倆來處理您的請求

+0

下面的註釋你的代碼似乎不工作:[jsFiddle](http://jsfiddle.net/8pPbt/)。 –

+0

是的,對不起,寫e.value而不是this.value – scripter

+0

仍然沒有做任何事情:[jsFiddle](http://jsfiddle.net/XH7nE/) –