0

我想要实现的是在更改输入字段时执行一些代码。

一些上下文...表单的页面使用 iframe 在灯箱(颜色框)中加载。

我遇到了两个问题:

  1. 表单加载时会触发 change 事件。它不应该——它应该只在字段改变时触发。如果我使用其他事件(例如焦点或单击),也会发生同样的事情。如果我使用 go、live 或 bind 也会发生这种情况。
  2. 当事件实际发生时,更改事件(或焦点、单击等)不会触发。

文档就绪和加载事件都会出现这两个问题。

出于故障排除的目的,我插入了一行将值放入表单字段中。那工作得很好。

这是代码示例:

$(document).ready(function(){
  $("#inputfield").change(alert("field changed"));
}

原则上这应该可行,所以我假设页面上还有其他影响它的东西,但我已经没有地方可以查看了。事件委托是一种解决方案吗?我不知道它在这里如何应用。

4

1 回答 1

0

在您的代码中,您change使用函数alert返回的函数调用函数。所以它调用alert函数,它返回undefined并且你调用change(undefined). 这样,您根本不会绑定事件。您应该将函数设置为参数:

$(document).ready(function(){
  $("#inputfield").change(function () { 
    alert("field changed"); 
  });
}
于 2012-08-02T09:20:53.150 回答