2011-06-10 16 views
0
<form name="form1"> 
Currency:<br><select name="currency" onchange='select()'> 
     <option name ='usd'>USD</option> 
     <option>Euro</option> 
     <option name ='won'>Won</option> 
    </select> 
</form> 

在IE中工作,我不能得到的onChange函數來執行,但在FF,歌劇,和鉻工作正常?JavaScript的 - 不能得到「的onChange」下<select>標籤

有人知道爲什麼嗎?

+0

對select元素使用* change *事件需要仔細考慮和設計。如果正在使用鍵盤導航,則每次按下光標鍵以選擇新選項時,某些瀏覽器(例如IE)將觸發更改事件。特別是,從不使用onchange進行導航。 – RobG 2011-06-10 05:24:25

+0

自1995年以來,我從來沒有在選擇onchange任何問題。我沒有看到你會遇到什麼問題。 – mplungjan 2011-06-10 05:29:39

+0

@mplungian:1995年有沒有一個onchange處理程序? Javascript(Livescript)在1995年12月看到了它的第一個燈光:〜) – KooiInc 2011-06-10 05:54:21

回答

-2

語法錯誤 - 選項上沒有名稱。也請在報價上保持一致

請向我們展示select()函數,它是失敗的。

工作例如:http://jsfiddle.net/mplungjan/fXacE/

注意,腳本,我建議需要留名ID的工作,但如果你使用的document.getElementById你必須有一個ID,因爲只有IE瀏覽器將超載的getElementById也得到命名元素

<script> 
var currenCurrency=""; 
function setCurrency(sel) { 
    currentCurrency=sel.options[sel.selectedIndex].value 
    alert(currentCurrency); 
} 
</script> 


<form name="form1"> 
Currency:<br><select name="currency" id="currency" onchange="setCurrency(this)"> 
     <option value="">Please select</option> 
     <option value="usd">USD</option> 
     <option value="euro">Euro</option> 
     <option value="won">Won</option> 
    </select> 
</form> 

如果你不想內嵌事件處理程序,然後以純JS,你可以使用

var currentCurrency=""; 
window.onload=function() { 
    document.getElementById("currency").onchange=function() { 
    currentCurrency=this.options[this.selectedIndex].value 
    } 
    document.getElementById("currency").onchange(); // set the current value 
} 

如果MUS T選用jQuery的,使用

$("#currency option:selected").text()

$("#currency option:selected").val()

+1

啊,仇恨投票。多麼專業。 – mplungjan 2011-06-10 05:24:29

+0

選項元素上是否存在名稱屬性與是否調度變更事件無關。 – RobG 2011-06-10 05:26:15

+0

然而,存在暗示了用戶的語法還有其他問題。還使用保留字作爲函數名稱。我的代碼按原樣工作。 OP的原始代碼永遠不會觸發USD,除非你第一次改變了一個選項。歐元也沒有價值。我需要查看代碼的其餘部分,以瞭解IE爲什麼不高興 – mplungjan 2011-06-10 05:28:10

0

如果分配到的onchange是不會放棄在IE預期結果的功能,它很可能聽者無法執行的結果而不是事件沒有被派遣。用一個簡單的函數替換監聽器,看看是否有效。

例如

<form name="form1"> 
    Currency:<br> 
    <select name="currency" onchange='this.form.inp0.value = this.value'> 
    <option value='usd'>USD</option> 
    <option value="euro">Euro</option> 
    <option value='kpw'>Won</option> 
    </select> 
    <input type="text" name="inp0"> 
</form> 
+0

嗯,我相信我已經給出了一個select和onchange處理程序的工作示例......並且您將如何選擇USD? – mplungjan 2011-06-10 05:57:41

2
<script language="javascript"> 
function TextValue(TestValue) 
{ 
document.f2.samptext.value=TestValue;   
} 
</script> 
<form name="f2"> 
<select name="select" onchange="TextValue(this.value)"> 
<option value="First">First</option> 
<option value="Second">Second</option> 
</select> 
<input type="text" name="samptext" id="samptext" /> 
</form> 
1

我什麼工作如下。但是需要Jquery

<script language="javascript"> 
function TextValue() 
{ 
var value = $('#selectThis').val();   
} 
</script> 
<form name="f2"> 
<select name="select" onchange="TextValue() id="selectThis"> 
<option value="First">First</option> 
<option value="Second">Second</option> 
</select> 
<input type="text" name="samptext" id="samptext" /> 
</form>