如何检测<input />元素的值更改?

时间:2013-10-03 14:23:17

标签: jquery jquery-mobile

我有一个默认值为'2'的输入元素:

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

使用jQuery mobile时显示如下:

<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”并单击该元素时,没有任何反应。检查开发人员工具会显示该值仍为“2”,即使屏幕上显示“5”。

奇怪的是,它确实适用于以下元素:

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

当要求使用时:

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

如果此值发生变化,我该怎么办?此外,页面上有许多元素class="chapter",所有类型都为<input>,我尝试使用$('.chapter').each().change(function(i, el) {

1 个答案:

答案 0 :(得分:0)

Kevin B写了一条评论:

  

它不起作用的唯一原因是你输入的原因   附加事件处理程序时不存在交互

你的天才凯文!它不起作用,因为<input>在页面上动态加载,并且在运行document.load函数时不存在。

我应该改变

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

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

EPIC!