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>標籤中