我有一个 jQuery 移动应用程序,其中更改事件绑定到某些文本输入。特别是带有 type="search" 的文本输入不会像 type"text" 文本输入那样触发 "change" 事件。这里有一个片段来解释:
HTML
<div data-role="page" id="p1">
<div data-role="content">
<a href="#p2" data-role="button">Go To Page 2</a>
</div>
</div>
<div data-role="page" id="p2">
<div data-role="content">
<p>This is page2</p>
<input type="text" id='mytextbox'></input>
<input type="search" id='mysearchbox'></input>
</div>
</div>
JavaScript
$('#mytextbox').change(function() {
alert('Hello World!');
});
$('#mysearchbox').change(function() {
alert('Hello World!');
});
除了它们的 id 和类型之外,两个文本输入都是相同的。文本框会在更改事件上触发,而搜索框不会。
我发现如果文本输入位于第 1 页上,那么一切都会按您的预期进行。所以这是页面变化和文本字段类型之间的关系。
这是一个小提琴:http: //jsfiddle.net/nMR85/1644/