ajax リクエストを実行する jQuery モバイル フォームをセットアップしました。問題はリクエストではありませんが、送信時に jQuery モバイルがページ コンテンツをロードするという事実です。これは、現在のページに追加したエラーが、ページがスワップされたときに削除されることを意味します (jquery モバイルを使用したことがある場合は、ページのハッシュなどがどのように機能するかがわかります)。
ps非ajaxクラスでフォームをラップしても、ajaxの実行が停止するため機能しません。
こんな感じで設定してます…
<!--Log in/Go to register page -->
<div data-role="page" id="one">
<div data-role="header">
<h1>Register of Log In</h1>
</div>
<div data-role="content">
<h2>Log In form</h2>
<form id='logInForm' action="#" method="POST">
<div data-role="fieldcontain">
<label for="email">Email address:</label>
<input type="text" name="emailLogIn" id="emailLogIn" value="" />
<br>
<label for="password">Password:</label>
<input type="password" name="passwordLogIn" id="passwordLogIn" value="" />
<br>
<button type="button" aria-disabled="false">Submit</button>
</div>
</form>
<p><a href='#two'>Not a member? Register here</a></p>
</div>
</div>
<!-- /page one -->
JQuery
$(function() {
var logInFormData = $('#logInForm');
$('#logInFor').submit(function(){
$.ajax({
url: 'http://www.mysite.co.uk/project/logIn/logIn.php',
type: 'post',
data: logInFormData.serialize(),
dataType: 'json',
crossDomain : true,
timeout: 5000,
success: function(logInReturn){
if(logInReturn.message[1]){
localStorage.clear();
$('form#logInForm').append("<div class='inputError'><p>" + logInReturn.message[1] + "</p></div>");
}
else if(logInReturn.message[2]){
localStorage.setItem('userHandle', logInReturn.message[2].userHandle);
localStorage.setItem('userId', logInReturn.message[2].userId);
window.location ='selectProject.html';
}
},
error: function(){
alert('There was an error loading the data. Contact the admin.');
}
});
});
});
私のPHPからのエラーの結果でわかるように、ページにdivを追加していますが、このページはスワップアウトされ、同じページからdivを除いたものに置き換えられます。とてもうるさい。ページスワップ後に追加する方法があると思いますか?
ありがとう。