我有一个名为'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