2011-11-29 101 views
3

使用觸發onchange事件提交的下拉菜單時,當兩個輸入提交按鈕存在時無法工作。它是有道理的,那麼你如何專門指定哪個提交按鈕來處理?onchange =「this.form.submit()」與兩個提交按鈕相比較

<form> 
<select onchange="this.form.submit()"></select> 
<input type="submit" name="submit1" id="submit1" value="Submit 1" /> 
<input type="submit" name="submit2" id="submit2" value="Submit 2" /> 
</form> 

解決方案 使用從下面的建議,這段代碼將工作,所以,如果平變化從下拉觸發第二個提交按鈕將執行:

<form> 
<select onchange="var e=document.getElementById('killbox'); var s=document.getElementById('submit1'); e.removeChild(s); this.form.submit();"></select> 
<div id="killbox"><input type="submit" name="submit1" id="submit1" value="Submit 1" /></div> 
<input type="submit" name="submit2" id="submit2" value="Submit 2" /> 
</form> 

這是一個基本的形式,當然不會傷害到將JavaScript引入到函數中,而不是使用內聯Javascript進行onchange。

+1

我的英語非常差,我知道你的一些'submit'不起作用?是對的嗎 ?? – 2011-11-29 18:46:29

回答

4

我敢肯定,你可以簡單地調用.submit()按鈕本身:document.getElementById('submit1').submit()

CNC中

解決方法二:只是刪除按鈕(使用removeChild(),這是一種常見的DOM方法)。

+0

我已經試過了,它沒有工作。似乎只有表格可以提交,而不是輸入按鈕。 – Exit

2

您可以觸發您想用來提交的按鈕上的點擊事件。這感覺很奇怪,但它應該工作。

1

爲Mathletics建議,火焰通過的onclick

<form name="oh" action="/"> 
<select onchange="oWhichSubmit(this)" onkeypress="oWhichSubmit(this)"> 
<option value=""></option><option value="submit1">Submit1</option><option value="submit2">Submit2</option> 
</select> 
<input type="submit" name="submit1" id="submit1" value="Submit 1" /> 
<input type="submit" name="submit2" id="submit2" value="Submit 2" /> 
</form> 

被使用所選擇的選項的值提交到引用提交元素

<script> 
function oWhichSubmit(thisSubmit){ 
    var oWhich = thisSubmit.value; 
    if(document.getElementById(oWhich)){ 
     document.getElementById(oWhich).click(); 
    } 
} 
</script> 
-1

這是可以使用的另一種形式

<select class="form-control" id="search" name="search" value="search" onchange="this.form.submit()"> 
 
\t \t <option>1</option> \t \t 
 
    <option>2</option> \t \t 
 
    <option>3</option> \t \t 
 
\t \t \t \t \t 
 
\t \t </select>