几个变化,
- 您需要在 beforeShow 之外绑定点击处理程序
- 我认为您无法识别
reason_submit2
在 beforeShow 中单击了哪个链接
或者,我为链接定义了 2 个 var 和一个单击处理程序,该处理程序将存储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();
});
});
演示
其他技巧是在 click 处理程序中向 clicked 链接添加一个类,并使用该类来获取name
and form
inside fancyConfirm_ok
,但我个人觉得这样更好。