如何在结束时从Fancybox iframe中的文本字段中获取值

时间:2014-10-27 15:29:43

标签: javascript jquery fancybox fancybox-2

我在fancybox(2)iframe中进行了测验,完成后我在Fancybox页面的隐藏文本框中保存了一个分数:

<form>
      <input type="text" id="theresult" hidden="true"/>
</form> 

现在,当用户关闭Fancybox时,我需要为父页面捕获此值,我尝试过:

$('.fancybox1').fancybox({
        width: 800,
        height: 500,    
        beforeClose: function () {
                 var testResult = $("#fancybox-frame").contents().find('input#theresult');
                 $('#txtTestValue').attr('value', testResult );
        }
});

但是这会返回&#34; [object Object]&#34; ...

我做错了什么?!

2 个答案:

答案 0 :(得分:2)

由于您使用的是fancybox v2.x ,因此您可能需要定位正确的选择器,所以试试这个

beforeClose : function () {
    var testResult = $(".fancybox-iframe").contents().find("#theresult").val();
    $('#txtTestValue').attr('value', testResult);
}

注意更改:

$("#fancybox-frame")

......应该是

$(".fancybox-iframe")

...我还添加了.val()方法。

答案 1 :(得分:1)

您正在存储输入字段。您应该存储输入值:

var testResult = $("#fancybox-frame").contents().find('input#theresult').val();