2013-05-07 58 views
0

我有以下jquery,觸發一個函數的關鍵。加載jQuery的觸發器功能沒有工作

$(document).ready(function() { 
    $("#calc").on("keyup", "input[type='text']", function() { 
    calculateSum(this); 
    }); 
calculateSum(); 
}); 

功能calculateSum在這裏找到:http://jsfiddle.net/pmetzger/ANp8u/2/

如果我加載一個值到輸入字段作爲默認值,顯然calculateSum不會觸發,因爲它不是一個KEYUP。

我這樣做雖然,需要能夠爲默認值加載到有時輸入字段,我需要的calculateSum功能的情況下,負載觸發存在需要計算的值。我在我的document.ready的結尾添加了calculateSum()函數,但它只會加載全局小計。我需要它運行,就好像我正在鍵入價值領域。我也嘗試過觸發事件,但也沒有運氣。

我已經把一些默認值在那裏進行測試。

回答

0

你可以做到這一點,觸發第一個元素綁定事件,你不需要觸發其上的所有元素,因爲那將是運行X元素。

$(document).ready(function() { 
    $("#calc").on("keyup", "input[type='text']", function() { 
    calculateSum(this); 
    }); 
    $("input[type='text']").trigger("keyup"); 
}); 
+0

好了,這有助於肯定。我能夠刪除:首先,它觸發了表中的所有內容。這是我所希望的。謝謝您的幫助。 – pjmetzger 2013-05-07 19:08:20

1

試試這個

var $elem = $('input[type="text"]', "#calc"); 

$elem.each(function($input) { 
    if($input.val()) { 
     $input.trigger('keyup'); 
    } 
}); 
+0

那不是實際的輸入。這是一個包裝輸入 – 2013-05-07 19:00:05

+0

'$(「#calc」,'input [type =「text」]')''說找到''input [type =「text」]''裏面的每個'#calc'顯然將是0元素,因爲輸入不能包含元素。 – 2013-05-07 19:07:41

+0

修正了它..用另一種方式寫了它.. :) – 2013-05-07 19:12:46

0

你需要或者調用觸發的輸入或對他們手動運行功能,像這樣:

$(document).ready(function() { 
    //Bind the event 
    $("#calc").on("keyup", "input[type='text']", function() { 
    calculateSum(this); 
    }).find("input[type='text']").each(function() { 
     calculateSum(this); 
    }); 
}); 
相關問題