2010-12-04 47 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 
});