我有一個名爲'mc_change'的JavaScript函數。另外,我有一個文本框,其變動事件應該調用JavaScript函數jQuery的JavaScript綁定和調用問題
<輸入類型= 「文本」 ID = 「mc_val」 的onchange = 「JavaScript的:mc_change();」/>
它不工作
任何人都可以建議我一樣普通的JavaScript或jQuery的?
感謝
我有一個名爲'mc_change'的JavaScript函數。另外,我有一個文本框,其變動事件應該調用JavaScript函數jQuery的JavaScript綁定和調用問題
<輸入類型= 「文本」 ID = 「mc_val」 的onchange = 「JavaScript的:mc_change();」/>
它不工作
任何人都可以建議我一樣普通的JavaScript或jQuery的?
感謝
你的示例腳本是完全有效的 - 有在你提供了什麼沒有明顯的錯誤。
使用「正常」的JavaScript你可以用附加事件:
document.getElementById('mc_val').onchange = mc_change;
使用jQuery:
$('#mc_val').change(mc_change);
當然,沒有理由相信這將解決這個問題,因爲他們應該都是(或多或少)等同於你的例子。 「這不起作用」並沒有真正的幫助。
刪除「JavaScript的:」 ......它應該是:
<input type="text" id="mc_val" onchange="mc_change();" />
它不工作 – 2010-12-04 04:31:50
的`的JavaScript:`是多餘的,但它不是不正確。不應該有所作爲。 – Hamish 2010-12-04 04:32:53
我忘記了這個瀏覽器(IE的,我認爲),但改變事件被推遲到輸入失去焦點。嘗試點擊其他東西,看看它是否執行。
我發現這在jQuery的change method documentation中提到。
我通過使用按鍵來解決問題(儘管我對此並不滿意!)。
正如其他人所說,你的腳本是有效的,應該做的是預期的。但是,我猜測你想要的事件可能不是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
});
這兩個都不正確,你在這兩種情況下立即調用函數,而不是將函數分配爲處理函數......它不應該有括號。 – 2010-12-04 10:03:22
doh - 更正:) – Hamish 2010-12-04 10:47:24