このフォーム (送信ボタンを含む) を考えると:
<form id="review_form">
<input type="submit" id="btn_submit" value="Submit with ajax! (submit button)">
</form>
およびこのリンク (同じフォームを送信するため):
<a href="#" id="lnk_submit">Submit with ajax! (hyperlink)</a>
次の jQuery コードでは、#btn_submit
要素がクリックされると、フォーム (#review_form)
が ajax で送信されます。
jQuery.fn.submitWithAjax = function() {
this.submit(function() {
$.post(this.action, $(this).serialize(), null, "script");
return false;
})
return this;
};
$(document).ready(function() {
$("#btn_submit").submitWithAjax();
})
私がしたいのは、送信ボタンを削除し、上記のリンク( #lnk_submit
) を使用してフォームを送信することです。
$("#lnk_submit").click(function(){
$("#review_form").submit(function() {
$.post(this.action, $(this).serialize(), null, "script");
return false;
});
return false;
});
しかし問題は、これが上記で定義されたすべてのコードを複製することです。 jQuery.fn.submitWithAjax
ここでコードの重複を避ける最善の方法は何ですか?