新年快乐 新年第一篇~!
情景:如图,点击子页面的某个树节点(“入院记录-辅助检查”),父页面的“物理表名”变化
方法一:子页面触发父页面的方法,父页面的方法取子页面的值后再给自己的元素赋值
这是我在项目中用的第一种方法,比较费
直接看代码:
(1)父页面表单:有一个 setTableNameFromChildJsp(this) 事件
<tr>
<td class="width-15 active"><label class="pull-right">物理表名:</label></td>
<td class="width-35">
<form:input path="modelName" readonly="true" class="form-control required" onclick="setTableNameFromChildJsp(this)"/>
</td>
</tr>
(2)function setTableNameFromChildJsp(this)
function setTableNameFromChildJsp(obj){
var iframe=$("#officeContent").contents();
var tableName = iframe.find("#tableName").val();//物理表名
$(obj).val(tableName)
}
(3)子页面 js
$("#modelName" , parent.document).click();
(4)过程:子页面 通过$("#modelName" , parent.document).click();触发 父页面的setTableNameFromChildJsp(this)方法,
在setTableNameFromChildJsp(this)方法里面 通过 var iframe=$("#officeContent").contents();var tableName = iframe.find("#tableName").val();//物理表名 获取子页面的值,然后再赋给自己页面的元素
大家可以试试~
方法二:能用复杂的,居然想不到简单的 唉!
直接在子页面给父页面赋值:window.parent.document.getElementById("modelName").value=treeNode.tableName;
快准狠!
window.parent.document.getElementById("modelName").value=treeNode.tableName;
效果和方法一 一样
另外:有时候我们想要设置一个输入框不可编辑的时候,可以这样试试
(1)readonly="readonly"
(2)readonly="true"