87,922
社区成员
发帖
与我相关
我的任务
分享
<script type="text/javascript" src="../../../js/jquery-1.4.2.min.js"></script>
<script language="javascript">
function change(TmpBOMPRId,field,val,idx,obj){
var _tmp=0;
$.each($('[name^="ReadyTime"]'), function(i,v){
_tmp += parseFloat(parseFloat($(v).val()).toFixed(3));
})
alert(parent.document.all("ReadyTime").value); //这里可以正常显示父页面元素ReadyTime的value值
parent.$('[name="ReadyTime"]').val(_tmp.toFixed(3));
alert(parent.document.all("ReadyTime").value); //这里有问题了,变成undefined
//1.执行到上面这句,父页面元素ReadyTime的value却变成undefined 但html父页面上此元素的值确实显示为合计值了,不知是为什么 ?
//2.另外,如果把parent.$('[name="ReadyTime"]').val(_tmp.toFixed(3)); 改为parent.$('[name^="ReadyTime"]').val(_tmp.toFixed(3));
//实际上由于父页面上只有一个name=ReadyTime的input元素,用name^="ReadyTime"和name="ReadyTime" 的效果应该一样,
//但执行最后一句alert时,用name^="ReadyTime"没问题;用name="ReadyTime",就会变成undefined
//3.实际上,如果把这句parent.$('[name="ReadyTime"]').val(_tmp.toFixed(3)); 改为 parent.document.all("ReadyTime").value=_tmp;
//也是正常的,执行最后一句会正确显示 parent.document.all("ReadyTime")的value
}
</script>
alert(parent.document.all("ReadyTime")==parent.$('[name="ReadyTime"]')[0])
结果是false
现在我把parent.$('[name="ReadyTime"]').val(_tmp.toFixed(3));
改成了parent.document.all('ReadyTime').value=_tmp.toFixed(3);
就正常了
parent.$('[name="ReadyTime"]').val(_tmp.toFixed(3));
alert(parent.document.all("ReadyTime")==parent.$('[name="ReadyTime"]')[0])//增加这句看下是否2个对象