いくつかの変更、
- beforeShow の外でクリック ハンドラをバインドする必要があります。
reason_submit2
beforeShow 内でクリックされたリンクを特定できないと思います
または、2 つの var と、後で使用される and をname
格納するリンクのクリック ハンドラーを定義しました。form
fancyConfirm_ok
完全なコード:
$(function() {
var r2sName = '', r2sForm = '';
$(".reason_submit2").fancybox({
openEffect: 'none',
closeEffect: 'none',
'modal': true
}).click(function () {
var $this = $(this);
r2sName = $this.data("name");
r2sForm = $this.data("form");
});
jQuery(".fancyConfirm_ok").click(function() {
$.fancybox.close();
console.log('form : ' + r2sForm);
console.log('name : ' + r2sName);
console.log('message : ' + $("[name=reason2]").val());
$($(".reason_submit2").data("form")).append($("<input>").attr("type", "hidden").attr("name", "reason").val($("#reason").val()));
$($(".reason_submit2").data("form")).append($("<input>").attr("type", "hidden").attr("name", $(".reason_submit2").data("name")));
//document.forms[$(".reason_submit2").data("form")].submit();
});
});
デモ
他のトリックは、クリックハンドラー内のクリックされたリンクにクラスを追加し、そのクラスを使用して内部のname
andを取得することですが、個人的にはこれが優れていると感じています。form
fancyConfirm_ok