2012-06-26 33 views
0

當我在列表中選擇任何選項時,它應該在文本框(所有html)中打印它的值。JavaScript事件不與IE7一起使用

enter image description here

我試圖

stafflist.setAttribute("onchange", "javacript:document.getElementById('id_17_enrolpassword').value = this.value;"); 

它在IE8 +以及所有現代瀏覽器而不是在IE7工作。

也試過

stafflist.addEventListener('onchange',"javacript:document.getElementById('id_17_enrolpassword').value = this.value;",false); 

那麼什麼變化,我應該在這裏做?

+0

的' - 閱讀進度 - ()'功能不受IE執行到第9版,[由MDN說明](https://developer.mozilla.org/en/DOM/element.addEventListener#Legacy_Internet_Explorer_and_attachEvent)(和如果你閱讀了doco頁面,你會發現即使對於實現它的瀏覽器,你的語法也是錯誤的:第二個參數應該是一個函數,而不是字符串)。 – nnnnnn

回答

0

1)的JavaScript解決這個問題:如果頁面上的第一個腳本是VBScript是唯一需要的標籤。

2)這個工作更好嗎?

document.getElementById('stafflist').onchange=function(){ 
    document.getElementById('id_17_enrolpassword').value = this.value; 
} 

+0

hooray ...其工作...在IE7和IE8 + .. – parthiv777

0

做這種方式 - 如果你的元素或標籤之外點擊它應該會火,那麼不同的元素 -

stafflist.onchange = function(){ 
    document.getElementById('id_17_enrolpassword').value= this.value; 
} 
+0

我也試過這一個,但很抱歉說不工作(不適用於任何瀏覽器)... – parthiv777

+0

看到這個例子 - http://jsfiddle.net/uLhUT/1/ – Kshitij

1

IE只有當元素失去焦點將觸發onchange事件。

您可以通過使用不同的偶數,例如onkeypress

+0

可以預見,問題不是代碼,而是IE。我永遠不會知道的互動細節,+1 – WhyNotHugo

+0

_「IE只會在元素失去焦點時觸發onchange事件」_ - 除了OP說它在IE8 +中有效。 @Hugo - 請注意,問題中的第二個示例在_any_瀏覽器中不起作用。 – nnnnnn

+0

嘗試與onkeypress,它既不在IE7也不在(IE8 +,鉻).... – parthiv777

0

我知道這不是真的回答手頭的問題,但是,你不能使用類似jQuery的東西來編碼這些甚至處理?

代碼更具可讀性(恕我直言),你不必自己處理這些跨瀏覽器腳本問題。

+0

我知道我可以使它更容易與Jquery,但我正在編輯Moodle(開放源代碼的PHP做的電子學習)......他們提到他們不推薦使用jQuery,因爲他們使用YUI JavaScript庫,反正我會盡量包括它...... – parthiv777

+0

那麼,這可能有所幫助:http://stackoverflow.com/questions/7039787/onchange-in-yui – WhyNotHugo

相關問題