友
我正在编写一个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;
});
});
但是,将选中的复选框数据发送到“父窗口”不起作用 请建议
答案 0 :(得分:1)
您实际上并没有创建真正的窗口。这是一个叠加。所以它不是一个弹出窗口,它不是一个窗口,因此你工作的内容没有window.parent
。
相反,您有一个隐藏的div /表单,可以显示并定位在窗口的上方。由于这都是使用CSS和Javascript完成的,因此表单中没有parent
,因为它与标记的其余部分位于同一窗口中。
我确定如果您查看浏览器的javascript控制台,就会发现window.parent is null / not an object
的错误。
有解释。答案就是:从代码中删除window.parent
和parent
。由于它不是一个窗口,因此您不是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;
});
});