フォームがIDを持っている場合にのみAJAX経由でフォームを送信する、この面白いコードを作った。AJAXで手動で提出する前に、任意のフォームIDを設定することはできますか?
$(document).delegate('form', 'submit', function(event) {
var $form = $(this);
var id = $form.attr('id');
//if form does not have an id, then submit it without ajax!
if(typeof id == 'undefined'){
$form.submit();
}else{
$.post($form.attr("action"), $form.serialize(), function(response) {
//response stuff
});
event.preventDefault();
}
});
しかし、問題は、今、私は手動でAjaxフォームは異なる機能から呼び出しを提出し、手動で値を渡す作るとき、それはAjaxをせずに定期的にフォームを送信します。フォームがHTMLに存在しない場合、フォームをTestServletに送信する前に、このajax呼び出しにIDを追加するにはどうすればよいですか?
//is it possible to add a form id before doing the ajax call below?
$.ajax({
// Maybe possible to add form id here?
url: 'TestServlet',
data: {
commentID: commentID,
comment: "lol"
},
type: 'post',
success: function(data){
window.location = data.url;
}
});
あなたはもう少し説明することができ、誰もがあなたが求めているものを理解できるかどうかわかりませんか? –
おそらく、 'delegate'ではなく' 'on''(http://api.jquery.com/on/)を使用しているはずです – epascarello
すべてがどのように構造化されているので、同じままにするコードが必要です。私が知る必要があるのは、最後のコードに示されているajax呼び出しにフォームIDを追加する方法です。それが可能なのかどうか? –