jQuery Mobile文本/搜索更改事件的行为方式不同

时间:2013-06-18 03:38:37

标签: javascript jquery jquery-mobile

我有一个jQuery移动应用程序,其中包含绑定到某些文本输入的更改事件。文本输入类型="搜索"特别是不要对#34;变化"事件类似"文字"文字输入。这是一个解释的片段:

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/

2 个答案:

答案 0 :(得分: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> 

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

答案 1 :(得分:0)

我希望您在进行搜索时能够获得更改事件。 type='search'还有其他一些相关事件。在这种情况下,您必须检查onSearch事件。您可以在此链接中查看更多内容 - reference