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

Jquery popup pass selected checkbox values to Parent window not working

本文关键字:窗口 值传 复选框 不起作用 Jquery      更新时间:2023-09-26

朋友

我正在编写一个 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;
        });             
    });

但是,将选定的复选框数据发送到父窗口不起作用请指教

你实际上并没有创建一个真正的窗口。 这是一个叠加层。 所以它不是一个弹出窗口,它不是一个窗口,因此你正在做的事情没有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;
    });             
});