我的页面上有一个 continue 按钮,当用户点击我调用验证功能时,如果页面上有任何错误,我会将它们显示在顶部并滚动到{{1 }}
现在,此页面已加载到window.scrollTo(0,0);
,而iframe
无效。我尝试了所有可能的方式,例如window.scrollTo(0,0);
或window.parent.scrollTo(0,0);
,但没有任何效果。
下面是我的代码(下面的错误消息div):
$('#error_msg_smry').animate({ scrollTop: 0 }, 0);
下面的按钮:
<div id="error_msg_smry" class="error_msg_summary" style="display:none;" >
<br/>
<div class="error_msg_heading">Sorry, but we cannot process your donation until the following errors have been fixed:</div>
<div> </div>
<div class="error_messages">
<div id="selDonationErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="otherAmtErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="lessDonationErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="recipientErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="firstNameErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="lastNameErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="emailErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="creditCardNameErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="creditCardNumberErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="creditCardExpiryMonthErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="creditCardExpiryYearErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
<div id="creditCardCCVErr" class="textClass" style="color:#b94a48; font-weight:400;"></div>
</div>
<br/>
</div>
在我的验证功能中,我执行以下操作:
<apex:commandButton styleclass="btn" action="{!makeDonation}" onClick="return validate();" value="Continue"/>
我无法访问父页面(我的iframe之外) 任何人都可以帮助我
答案 0 :(得分:0)
如果有人遇到同样的问题并寻找解决方案,请发布我的答案:
我决定写下代码:
if(isPass == false){
document.getElementById("error_msg_smry").style.display = 'block';
// window.scrollTo(0,0);
var div = document.createElement("div");
div.innerHTML = "<a style='position:absolute;left:0;top:0px' href='#'></a>";
div = div.firstChild;
document.body.appendChild(div);
div.focus();
div.parentNode.removeChild(div);
}
else{
document.getElementById("error_msg_smry").style.display = 'none';
}
return isPass;
}