シンプルなログインフォームがあります。
<form id="login" action="process/login_process.php" method="POST" name="login" accept-charset="utf-8">
<div><label>Username:</label><input type="text" name="username" data-ideal="required"/></div>
<div><label>Password:</label><input type="password" name="password" data-ideal="required"/></div>
<div><button id="submit" type="submit">Login</button></div>
</form>
フォームの検証と全体的な美しさのために JQ-IDEALFORMS を使用しています。ajax経由でフォームを送信する方法を理解するのに最も苦労しています。これは私がこれまで持っているJavaScriptです:
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.min.js"></script>
<script src="javascripts/jquery.idealforms.min.js"></script>
<script>
var options = {
onSuccess: function() {
$.post('process/login_process.php', $myform.serialize())
alert(responseXML);
}
};
var $myform = $('#login').idealforms(options).data('idealforms');
$('#submit').click(function() {
$.post('process/login_process.php', $myform.serialize());
alert('hello');
});
ドキュメントの非常に限られた指示に従い、options 変数の onSuccess アクションに $.post を追加しました。それはうまくいきません。次に、送信ボタンにリスナーを追加しようとしましたが、アラート ボックスが表示されません。つまり、リスナーがトリガーされることはありません。これはどのように行うべきですか?フォームを送信できましたが、送信すると、XML がエコーされている php ページにページがリダイレクトされます。何らかの理由で、ログイン ページにエコー バックさせることができません。