1

我有一个 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/

4

2 回答 2

4

替换这个

<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> 

有了这个

<div data-role="page" id="p2">
    <div  data-role="content">
        <p>This is page2</p>
        <input data-type="text" id='mytextbox'></input>
        <input data-type="search" id='mysearchbox'></input>
    </div>
</div> 

不同之处在于我需要指定“数据类型”而不是“类型”。

于 2013-06-18T04:03:21.753 回答
0

我希望您在搜索时希望获得更改事件。type='search'有一些其他相关的事件。在这种情况下,您必须检查onSearch事件。您可以在此链接参考中查看更多信息。

于 2013-06-18T03:54:30.953 回答