ここで私がやろうとしていることは次のとおりです。私の Web ページには、たくさんの HTML フォームがあります。個々のフォームが送信された場合は、フォーム全体を何かに置き換えてください。しかし、私はこれを行うことができませんでした。
以下は私のJavaScriptコードです:
$("#commentreply").each(function() {
var replace = false;
$(this).submit(function() {
// http://stackoverflow.com/q/16323360/1222411
event.preventDefault();
var url = $(this).attr('action');
var nameValue = $(this).find('input[name="name"]').val();
var commentValue = $('#commentEntry').val();
var projectValue = $(this).find('input[name="project"]').val();
var idValue = $(this).find('input[name="id"]').val();
var posting = $.post(url, {
project : projectValue,
id : idValue,
name : nameValue,
comment : commentValue
});
posting.done(function(data) {
$(this).replaceWith("(HTML content to replace form)");
}).error(function(){
alert("An error occurred. Be sure you entered a name and comment and try again");
});
});
});
アイデアは、次の HTML コードです。
<form id="commentreply" name="reply" action="/lib/comments/addComment.php" method="post">
<input type="hidden" name="project" value="project">
<input type="hidden" name="id" value="-1">
Name:<input type="text" id="nameEntry" name="name" size="100"><br>
Comment:<br><textarea id="commentEntry" name="comment" size="255">
Enter comment here</textarea><br>
<input type="submit" value="Submit">
</form>
送信ボタンを押すとこうなります。
(HTML content to replace form)
何かアドバイス?.each() を使用して各フォームのアドレス指定を処理するよりも、各フォームに JavaScript を添付する方がよいでしょうか?