2010-12-04 52 views
1

我有一個名爲'mc_change'的JavaScript函數。另外,我有一個文本框,其變動事件應該調用JavaScript函數jQuery的JavaScript綁定和調用問題

<輸入類型= 「文本」 ID = 「mc_val」 的onchange = 「JavaScript的:mc_change();」/>

它不工作

任何人都可以建議我一樣普通的JavaScript或jQuery的?

感謝

回答

0

你的示例腳本是完全有效的 - 有在你提供了什麼沒有明顯的錯誤。

使用「正常」的JavaScript你可以用附加事件:

document.getElementById('mc_val').onchange = mc_change; 

使用jQuery:

$('#mc_val').change(mc_change); 

當然,沒有理由相信這將解決這個問題,因爲他們應該都是(或多或少)等同於你的例子。 「這不起作用」並沒有真正的幫助。

+0

這兩個都不正確,你在這兩種情況下立即調用函數,而不是將函數分配爲處理函數......它不應該有括號。 – 2010-12-04 10:03:22

+0

doh - 更正:) – Hamish 2010-12-04 10:47:24

-1

刪除「JavaScript的:」 ......它應該是:

<input type="text" id="mc_val" onchange="mc_change();" />

+0

它不工作 – 2010-12-04 04:31:50

+0

的`的JavaScript:`是多餘的,但它不是不正確。不應該有所作爲。 – Hamish 2010-12-04 04:32:53

-1

我忘記了這個瀏覽器(IE的,我認爲),但改變事件被推遲到輸入失去焦點。嘗試點擊其他東西,看看它是否執行。

我發現這在jQuery的change method documentation中提到。

我通過使用按鍵來解決問題(儘管我對此並不滿意!)。

1

正如其他人所說,你的腳本是有效的,應該做的是預期的。但是,我猜測你想要的事件可能不是onchange事件。在處理文本輸入時,我發現綁定到onchange只會在文本輸入中取消焦點時做一些事情,所以使用事件組合來覆蓋多種輸入方法可能是您最好的選擇。

以下是我通常使用做一些事情當文本改變事件的例子:

$('#mc_val').bind({ 
    change : mc_change, 
    keydown : mc_change, // for key presses 
    mouseup : mc_change, // for mouse paste 
    mousemove : mc_change // for mouse paste 
});