2010-02-19 124 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

相關問題