jQuery移动文本/搜索更改事件的行为不同

jQuery Mobile text/search change event acts differently

本文关键字:事件 文本 移动 搜索 jQuery      更新时间:2023-09-26

我有一个jQuery移动应用程序,其中更改事件绑定到某些文本输入。特别是带有type="search"的文本输入不会像"text"类型的文本输入那样触发"change"事件。下面是一个片段来解释:

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

替换此

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

不同之处在于我需要指定一个"数据类型"而不是"类型"

我希望您希望在进行搜索时获得更改事件。type='search'有一些其他相关的事件。在这种情况下,您必须检查onSearch事件。