2013-10-03 55 views
0

我有「2」默認值的輸入元素:如何檢測<input>元素上的值更改?

<input type="text" class="chapter" value="2" /> 

該款顯示器的使用jQuery移動時如下:

<div class="ui-input-text ui-shadow-inset ui-corner-all ui-btn-shadow ui-body-c"> 
    <input type="text" class="chapter ui-input-text ui-body-c" value="2"> 
</div> 

我希望每個值是通過改變時間做某事用戶,所以我說:

$('.chapter').change(function(i, el) { alert("coding is epic"); }); 

然而,當我將值更改爲「5」,然後點擊這個元素,沒有任何反應。檢查開發人員工具可以看出,即使屏幕上顯示「5」,值仍然爲「2」。

的奇怪的事情是,它下面的元素上工作:

<input id="UploadFile" type="file" name="datafile"> 

時要求用:

$('#UploadFile').change(function(e){ //aaaaargh! }); 

我怎麼可以這樣做,當該值發生變化?此外,還有在頁面上的許多元素與class="chapter",所有<input>類型,我一直在使用$('.chapter').each().change(function(i, el) {

+0

我沒有看到您的代碼有任何錯誤,因爲它可能是頁面上的其他內容。另外,你使用'.each'是不正確的。 – Denis

+0

在控制檯中輸入'$(「。chapter」).val()',你會發現它已經改變了。它不會更改值屬性,但這並不重要。不知道爲什麼你的警報沒有被觸發,除非這是一個授權問題。它在'document.ready'處理程序中嗎? – Archer

+2

您的代碼最有可能位於將輸入添加到文檔後執行的位置。 –

回答

0

凱文乙寫了評論嘗試:

它不工作的唯一原因是因爲輸入你是 當事件處理程序連接時不存在互動

你是天才凱文!它不起作用,因爲<input>是動態加載在頁面上的,並且在運行document.load函數時不在那裏。

我應該改變

$('.chapter').change(function(i, el) { #### }); 

$('.container').on('change', '.chapterPageFrom', function() { #### }); 

EPIC!