数日間、いくつかの関連する投稿を見た後、私はまだ答えがないこの質問を投稿することにしました.
タイプ「検索」の入力フィールドを持つ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 キーを押すと、古い値が表示されます。何が起こっているのかわからない。