2010-02-19 94 views
1

我有以下情形:jQuery:如何停止从blur()处理程序触发change()事件?

$("#element").blur(validate).change(onElementChange); 

的验证()函数应防止更改事件烧制而成,如果#element的值无效。 我无法添加要更改的验证,因为它也需要验证模糊。 如果将validate()添加到两个事件中,则带有验证错误的警报将弹出两次。

所以,我的问题是,我可以停止从模糊事件处理程序发射的更改事件吗?

此外,如果你有不同的解决方案(不使用插件),我想听听它。

感谢

+0

后处理验证怎么只使用'blur'处理程序,并从'validate'内部以编程方式调用'onElementChange'?这将允许你的模糊处理器像你所描述的那样控制'onElementChange'的执行。 – 2010-02-19 10:04:43

+0

您对验证错误有警报?用户不会那么喜欢,警报有点太侵扰。 – 2010-02-19 10:08:28

+0

@Jimmy Cuadra:是的,这可以解决双重调用的问题,但不幸的是,onElementChange会做一些更新,只有在数据被修改时才会进行更新。 @Ed伍德科克:我是知道的,但这个应用程序是仅供内部使用,所以:-) – egyedg 2010-02-19 11:55:18

回答

1

我找到了一个解决方法的问题:

  • 只有改变事件
  • 触发处理程序的更改事件或模糊(万一)
0

不能调用onElementChange功能的验证函数内当它返回有效。

+0

没有问题,不幸的是,onElementChange确实,如果数据被修改,这应该仅仅做了一些更新。 – egyedg 2010-02-19 11:56:13

相关问题