0

数日間、いくつかの関連する投稿を見た後、私はまだ答えがないこの質問を投稿することにしました.

タイプ「検索」の入力フィールドを持つjqueryモバイルページがあり、Enterキーが押された場合にフィールドの現在の値で別のページを呼び出すフィールドのキーアップ機能があります。初めて値を入力してエンターキーを押すと、すべてが正常に機能します。しかし、その後、入力した最初の値 (前の値) を常に取得し、新しく変更された値を取得することはありません。関連する投稿を見ましたが、問題の解決策がわかりませんでした。問題は、これまでにテストしたすべてのブラウザー、コンピューター、およびモバイルで同じです。

入力欄はこちら

<div class="content-primary" data-dom-cache="false">
        <input type="search" name="finddata" id="search-team" value="Find Data" data-inline="true"/>
</div>

スクリプト機能はこちら

$(document).on('keyup','#search-team',hndlSearchTmKeyup);

function hndlSearchTmKeyup(event) {
    if (event.which == 13) {
         alert("search!oo! ="+$("#search-team").val());     
         window.location.assign("/myapp/mysearchpage.jsp?findTmNm="+$("#search-team").val())
         return false;
    }
}    

さらにテストした結果、window.location.assign を呼び出さずに hndlSearchTmKeyup 関数でアラートを表示するだけで、新しい値が正しく表示されることがわかりました。window.location.assign を含めると、次のページから「ホーム」ボタンをクリックして元のページに戻り、新しい値を再度入力して Enter キーを押すと、古い値が表示されます。何が起こっているのかわからない。

4

1 に答える 1

0

さらに調査した結果、何があっても最初のページがキャッシュされる jquery mobile の既知の問題に関連しているようです。

jQuery Mobile UI でキャッシングを無効にするにはどうすればよいですか。

問題を解決するために、そのスレッドに記載されている回避策の1つを実装しました(@KCDによって提案されたもの)

于 2013-05-14T00:59:55.910 に答える