2012-06-08 353 views
3

我使用Internet Explorer 8和Sharepoint 2007.onChange事件不會觸發

簡報:我有一個NewForm,其中包含列表中的各個字段。我需要使用javascript,從其中一個字段獲取用戶引入的值(在文本框中),並使用onChange將其粘貼到同一頁中的其他字段(其他文本框)上。

問題:我是一個JavaScript新手,我無法設置事件'onChange'來觸發我的功能,或者至少觸發'alert(「Test」)...或者我只是做錯了,不知道爲什麼(更可能)...

讓我們假設我想要使用的字段具有FieldName =「IDTeam」,type =「text」和id =「id_TeamField」。

//My JS below "PlaceHolderMain" 

_spBodyOnLoadFunctionNames.push("setTxtBoxesValues"); 

function setTxtBoxesValues() 
{  
    //snipped 

    getField('text','IDTeam').onChange = function(){alert('Test')}; 
    //"getField('text', 'IDTeam).onChange = function(){myFunction()};" 
    //If I want to call myFunction() when onChange event is triggered  
    } 

此外,而不是getfield命令,嘗試這樣做:

document.getElementById('id_TeamField').onChange = function(){alert('Test')}; 

如果我想打電話給myFunction的當onChange事件被觸發

的是什麼,我做錯了任何想法()?

回答

4

平變化是一個事件,這樣無論你把它的標籤是這樣的:

<input type="text" id="IDTeam" onchange="(call function here)" /> 

或應用的addEventListener到DOM對象:

document.getElementById("IDTeam").addEventListener("change", function() {//call function here}); 

在IE6中,你可能需要:(不當然,如果它很少人使用ie6現在)

document.getElementById("IDTeam").attachEvent("onchange", function() {//call function here}) 
+0

試過了「把它放在標籤「之前(以及最近一次以防萬一)。仍然沒有工作。 不知道它是否有幫助,但現在我看它...它說:「在IE 6.0中,'onchange'屬性不被接納。 –

+0

@MayerM你應該指出,如果你仍然堅持ie6。它很爛。看到我上面的版本。 – NSF

+0

Sry,不知道...我在IE 8上運行它,但在Designer 2007中,它說「輔助方案:IE 6.0」(我剛剛看到它:S) ...仍然沒有:/謝謝,雖然:) –

1

這樣做:

window.onload = function() { 
    document.getElementById('id_TeamField').addEventListener('change', function() { 
     alert('test'); 
    }); 
}; 

或者使用jQuery:

$('#id_TeamField').on('change', function() { 
    alert('test'); 
}); 

酷,大家抄我的答案!

+0

感謝您的快速響應:) 不幸的是,它沒有工作:/(仍然沒有做任何事情)。 –

+1

@MayerM - 是的,它的確如此:http://jsfiddle.net/kE4CV/ onchange事件不會觸發,直到輸入模糊 – PitaJ

+0

我敢肯定,你測試它,並工作...但沒有工作我(沒有解決方案)。 也許這是我的設計器(一些配置)錯了嗎? 我提到NSF,我剛剛注意到,在頁面編輯器選項中,它說「輔助方案:IE 6.0」,即使我在IE8中運行頁面。 –

0

您可以通過

添加事件偵聽器

document.getElementById('id_TeamField').addEventListener('change', function(){alert('test');}); 

添加的onChange到標籤

<select onChange='function() { alert('test');}' name='IDTeam' id='id_TeamField' > 
    <option>option1</option> 
    <option>option2</option> 
    <option>option3</option> 
</select>