<t:panelTab label="Detailed View" styleClass="tabFont" rendered="true" id="DetailedView">
<t:dataTable value="#{MyFinanceBB.amendDataList}" id="DetailedViewGrid" forceId="true"
var="myVo" rowIndexVar="gridExpRowNo"......>
...............
<t:inputText value="#{myVo.myval}" styleClass="BodyFont" forceId="true" id="myId2"
onchange="getTotalMyValAjax('myId2[#{gridExpRowNo}]',#{gridExpRowNo});">
/ ------------------------------------------- --------------------- /
function getMyAmountTotalGrid(myidVar,count){
var myAmt=document.getElementById(myidVar).value;
var id = 'myForm\\:targetView';
$j.ajax({
async:"false",
cache:"false",
type: "POST",
url:"/myProj/myController",
data:{myAmt:myAmt,count:count},
error:function(){
alert('Error Occurred.Please try later');
},
success:function(output){
alert('SUCCESS');
$j('#'+id).load("/pagesmyProj/Home/dingDongHome.jsf");
alert('after reloading grid');
}
});
}
当我执行代码警报消息时,SUCCESS正在打印,并且所有服务器端变量都在更新。(我通过sysouts了解这一点)。但是在网页上没有任何改变。警告消息“重新编码网格后”也会被打印出来。但网格没有重新加载。服务器端更改未反映在浏览器中。
答案 0 :(得分:3)
首先,您应该将\\
添加到您的ID
而不是var id = 'myForm:targetView';
写var id = 'myForm\\:targetView';
否则jquery选择器由id不能工作(你需要转义:
)
答案 1 :(得分:1)
您正在引用
$j('#'+id)...
只需删除“j”,例如$( '#' + ID)...
答案 2 :(得分:0)
经过长时间的斗争,我得到了错误。给jquery加载函数的url不正确,应该更改。