2015-02-09 161 views
0

看到這個FIDDLE DEMO爲什麼輸入僅在第一次點擊(僅)時觸發?

$('input:text').trigger('input');

我需要觸發輸入變化時,輸入與事件(按鍵,輸入改變)編程和不會改變。 在我的小提琴上,只有當我第二次點擊表格行時輸入纔會改變。

例如,

1)點擊蘋果

2)點擊的第一行(A1,A2,A3)旁邊的按鈕。

這不會檢測到「蘋果」輸入已更改, 但如果我嘗試單擊香蕉或櫻桃旁邊的按鈕,現在將檢測香蕉或櫻桃輸入字段的更改。

回答

0

你對使用trigger函數是正確的。

添加在這裏:

$(clickedButton).parent().prev().find('input').val(tds.eq(0).html()); 

像這樣:

$(clickedButton).parent().prev().find('input').val(tds.eq(0).html()).trigger("input"); 

此外,請注意,此代碼:

$("#table1 >* input").each(function() { /**/ } 

在你的小提琴放在$(document).ready() - 將它移動到$(document).ready(),其他是你在不完整的DOM上調用它,它也會導致問題。

+0

不起作用http://jsfiddle.net/bumbumpaw/eq8qvLnn/6/。 – bumbumpaw 2015-02-09 09:21:29

+0

它的確如此。你有'oldVal'的問題 - 初始化後它是'undefined'。然後在'foo'函數中,您正在搜索值爲'undefined'的輸入元素。這就是它在一開始就失敗的原因。使用'console.log()'調試器來跟蹤這些值。 – rubikonx9 2015-02-09 10:35:35

相關問題