jQuery Mobileでチャットアプリケーションを作成しています。問題は、ページ間を移動してデータを送信するときにチャットページに戻ったときにデータが再送信されることです1つのページが他のページに移動した回数
フルページのリフレッシュを実行すると、必要に応じてデータが1回だけ送信されます。ページ間の移動後にjqueryモバイルで重複データを停止する方法
リンク(ボタン)のhref
にdata-ajax = false
を追加しようとしましたが、それでも機能しませんでしたか?
HTMLコード:
<form id="form_message_user" method="post"
action="#user_requestmoreinfo_page
">
<div data-inset="true">
<label for="requestmessage" class="ui-hidden-accessible"></label>
<textarea cols="40" rows="6" name="requestmessage"
id="text_user_message" placeholder="Type message to send "></textarea>
</div>
<input type="submit" value="submit" id="submitmessage" />
</form>
形態は
<div data-role="page" id="user_requestmoreinfo_page" data-theme="e">
提出コードをページ上にある:成功し
$(document).on('pageshow', '#user_requestmoreinfo_page',function(e){
var id_from = localStorage.loggedin_id;
var id_to = localStorage.user_schoolls_id;
var message = $("#text_user_message").val();
$('#form_message_user').on('submit', function(e){
e.preventDefault();
if(message > 0){
// Send data to server through the Ajax call
// action is functionality we want to call and outputJSON is our data
$.ajax({url: '127.0.0.1/php/send.php',
data: {message:message,id_from:id_from,id_to:id_to},
type: 'post',
async: 'true',
dataType: 'json',
beforeSend: function() {
// This callback function will trigger before data is sent
$.mobile.showPageLoadingMsg(true); // This will show ajax spinner
},
complete: function() {
// This callback function will trigger on data sent/received complete
$.mobile.hidePageLoadingMsg(); // This will hide ajax spinner
},
success: function (result) {
console.log(result);
},
error: function (error) {
// This callback function will trigger on unsuccessful action
console.log(error);
}
});
} else {
alert('Please enter the message');
}
return false; // cancel original event to prevent form submitting
});
});
にconsole.log()が表示さページに移動する前のページのナビゲーション数に応じたjsonデータ(#user_requestmoreinfo_page)。
例:
私は他のページとの間で3回にconsole.logをナビゲートするために持っていた場合は、()の3倍
'reload'しかありません'url'引数がURL(http://api.jquerymobile.com/pagecontainer/#method-load)のときに動作します。 HTMLフォームコードとjQueryサブミットコードを投稿してください。 –
idsを参照(#..)するときにリロードを確実にする方法はありますか? –
'pageshow'ではなく、イベントリスナーを追加するときに' pagecreate'でコードをラップします。 – Omar