javascript的showModalDialog弹出页面将值赋给父页面
父页面的html
<input type="radio" class="required" name="operate" value="张三" />
<div class="dlDisplay">
<dl>
<dt>选择的人员为:<span id="orgName"></span></dt>
<dd>
<input id="inputOrg1" name="id" type="hidden" class="required"/>
</dd>
</dl>
</div>
js代码:
$(document).ready(function(){
$(':radio').bind('click',function(){
var operate = 'operate'+$(this).val();
var documentation = $("input[name='"+operate+"']").val();
if(documentation != ""){
$(".dlDisplay").fadeIn("slow");
$("#inputOrg1").attr("class","required");
url = "<%=path%>/workflow_lookup.action?documentation="+documentation;
return window.showModalDialog(url ,window,"dialogWidth=700px;dialogHeight=450px;");
}else {
$(".dlDisplay").fadeOut("slow");
$("#inputOrg1").attr("class","");
$("#inputOrg1").val('');
$("#orgName").val('');
}
});
});
在点击单选按钮的时候,通过struts2中的action,进行流程转向新的页面,并通过window.showModalDialog(url,window,param)将跳转的页面进行弹出
子页面的html:
<input type="radio" name="processPersonnel" value='{"id":"123", "orgName":"hello", "orgNum":"4564124"}'/>
<input type="radio" name="processPersonnel" value='{"id":"456", "orgName":"word", "orgNum":"4564124"}'/>
<input type="radio" name="processPersonnel" value='{"id":"789", "orgName":"pig", "orgNum":"4564124"}'/>
js代码:(单选按钮的值为json格式)
$(document).ready(function(){
$(':radio').bind('click',function(){
var objarr = $("input[name='processPersonnel']");
var parWin = window.dialogArguments;
for(var i = 0; i < objarr.length; i++){
if(objarr[i].checked){
var data = objarr[i].value;
var dataObj = eval("("+data+")"); //解析json格式的值
parWin.document.getElementById("orgName").innerHTML = dataObj.orgName; //将子页面的值赋给父页面
parWin.document.getElementById("inputOrg1").value = dataObj.id; //将子页面的值赋给父页面
}
}
window.close();
});
});
其中var parWin = window.dialogArguments;作用是可以拿到父页面的具体标签的value,然后将子页面值需要传给父页面时,可以通过
parWin.document.getElementById("orgName").innerHTML,将子页面的值赋给父页面中的<span id="orgName"></span>标签中