2010-07-16 70 views
2

我有一個onChange事件在selectthis.value正在使用Firefox,但不能在Internet Explorer中使用?

當我做alert(this.value)時,它使用Firefox,但不使用Internet Explorer。爲什麼不?

這是代碼:

<select onchange="new Ajax.Updater('fiches', '/~project/index.php/folder/fiche', {asynchronous:true, evalScripts:true, parameters:'fiche=' + this.value});" class="input" id="fiche" name="fiche"> 
    <option value="0">Choisir ma fiche</option> 
    <option value="1">Vous etes salariés</option> 
    <option value="2">Sans emploi</option> 
</select> 
+1

請將您的HTML和JavaScript代碼添加到問題中,否則我們在這裏尋找乾草堆裏的針。 – Prutswonder 2010-07-16 12:08:47

+0

&你寫的代碼是? – Salil 2010-07-16 12:09:25

+0

我不熟悉symfony,但是''新的Ajax.Updater(...);「'一個有效的構造函數?例如是「Ajax」,你想要實例化的對象,因此''新的Ajax()。Updater(...);「'可能會更好? – scunliffe 2010-07-16 13:01:26

回答

3

我以前用IE和選擇過類似的問題。選擇項的值屬性在IE中是一種痛苦。通常解決方案是關心選定的選項(而不是選擇元素)並訪問其文本屬性。

我會做這jQuery來訪問選中文本:

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

因此,在原料的JavaScript就應該是這樣的:

document.getElementById("myselect").options[document.getElementById("myselect").selectedIndex)].text 

document.getElementById("myselect").options[document.getElementById("myselect").selectedIndex)].value 

這是在IE中進行選擇+ JS的一般想法。

1

嘗試this.options[this.selectedIndex].value

+0

我懷疑這會有所幫助。 'selectElement.value'將一直工作到IE6和IE5.5。這個問題更可能是這個參考。 – 2010-07-16 12:12:20

+0

Afaik'element.value'和'onchange =「this ...」'在每個瀏覽器中都有效,所以我只是把它作爲'好的,也許IE再次拼湊起來的,這可能會起作用。我不明白它爲什麼會起作用,但考慮到IE不習慣的習慣,我猜這是值得一試的。 – 2010-07-16 12:36:46

0

它看起來像你正在使用Prototype。嘗試撥打$F(this)而不是this.value

相關問題