Jquery弹出窗口将选中的复选框值传递给父窗口不起作用

时间:2013-06-04 19:22:43

标签: javascript jquery

我正在编写一个jsp,它使用带有复选框的jQuery打开弹出窗口,然后用户可以在弹出窗口中选择所有复选框值,然后在提交时,它会显示到父窗口, 到目前为止,我可以打开一个弹出窗口,显示复选框列表,我很难将选中的复选框值发送到父页面,请建议

我的代码是

<form action= "" id ="overlay_form" method= "post" style="display:none">
        <h3>Select Language</h3> 
        <br /><br />
        <input type="checkbox" name="countryCheckbox[]" value="English" /> English  <br/>
        <input type="checkbox" name="countryCheckbox[]" value="French" /> French  <br/>
        <input type="checkbox" name="countryCheckbox[]" value="Norwagian" /> Norwagian  <br/>
        <input type="checkbox" name="countryCheckbox[]" value="Swedish" /> Swedish <br/>
        <input type="checkbox" name="countryCheckbox[]" value="Chinese" /> Chinese <br/>
        <br /><br />
        <div class="row-fluid grid-footer">
        <div class="span8"></div>
        <div class="span5">
        <input class="btn btn-primary btn-primary-secondary" type="submit" name="saveDepartmentBtn" id="saveOrg" value="Save" onclick="this.disabled='disabled'; document.getElementById('saveOrg').disabled='disable';this.form.submit(); ">
          </div>
          <div class="span1">
        <button  class="btn btn-secondary" type="button" cancel-action="/admin/role/list" ><spring:message code="common.cancel" /></button>
        </div>
        </div>
    </form>
<p id="text">
                Selected Languages are: 
            </p>

现在将已选中的复选框数据发送给父我的JQuery代码

$(document).ready(function(){
        $('#overlay_form').submit(function(){

                    $('input:checkbox:checked').each(function(){
                        window.parent.$("#text").text(parent.$("#text").text() + $(this).val()+" ,");

                    });
                    parent.$.close();
                    return false;
        });             
    });

但是,将选中的复选框数据发送到“父窗口”不起作用 请建议

1 个答案:

答案 0 :(得分:1)

您实际上并没有创建真正的窗口。这是一个叠加。所以它不是一个弹出窗口,它不是一个窗口,因此你工作的内容没有window.parent

相反,您有一个隐藏的div /表单,可以显示并定位在窗口的上方。由于这都是使用CSS和Javascript完成的,因此表单中没有parent,因为它与标记的其余部分位于同一窗口中。

我确定如果您查看浏览器的javascript控制台,就会发现window.parent is null / not an object的错误。

有解释。答案就是:从代码中删除window.parentparent。由于它不是一个窗口,因此您不是closing窗口,因此close可能是fadeOut

$(document).ready(function(){
    $('#overlay_form').submit(function(){

                $('input:checkbox:checked').each(function(){
                    $("#text").text($("#text").text() + $(this).val()+ " ,");

                });
                $('#overlay_form').fadeOut(500);

                return false;
    });             
});