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 とタイプを除いて同一です。テキスト ボックスは change イベントで発生しますが、検索ボックスは発生しません。

私が見つけたのは、テキスト入力がページ 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

検索時にchangeイベントを取得していただければ幸いです。type='search'他にもいくつかのイベントが関連付けられています。この場合、onSearchイベントを確認する必要があります。このリンク参照で詳細を確認できます。

于 2013-06-18T03:54:30.953 に答える