我有一个文本框(必须使用RequiredFieldValidator)和一个提交按钮。我在按钮OnClientClick
上使用以下代码应用了加载gif。
<asp:Image ID="ImgAjaxloaderClarification" ImageUrl="/images/ajaxloadernew.gif"
AlternateText="Loading Image" runat="server"/>
<asp:ImageButton ID="btnRequestClarification" runat="server"
ImageUrl="/images/btn_RequestFutureClarif.png" ValidationGroup="VGFillHours"
OnClientClick="return showContent();"
OnClick="btnRequestClarification_Click" />
以下是显示加载程序gif的javascript函数。 (最初将gif设置为display:'none')
<script type="text/javascript" language="javascript">
function showContent()
{
if (document.getElementById("<%=RequiredFieldValidator1.ClientID %>").getAttribute("IsValid"))
{
document.getElementById("<%=ImgAjaxloaderClarification.ClientID %>").style.display = "block";
return true;
}
return false;
}
</script>
问题是RequiredFieldValidator在调用OnClientClick函数之前工作正常。但它突然停止了工作。尽管显示了gif,但RequiredFieldValidator不起作用。
任何帮助。
答案 0 :(得分:3)
尝试从JavaScript函数触发验证:
function showContent(){
var isValid = Page_ClientValidate("");
if (isValid){
document.getElementById("<%=ImgAjaxloaderClarification.ClientID %>").style.display = "block";
}
return isValid;
}
答案 1 :(得分:1)
我的解决方案与詹姆斯的答案非常相似:
在致电Page_ClientValidate()
时注意这些问题: Problem with Page_ClientValidate
function showContent()
{
// if you need one group use
// Page_ClientValidate('VGFillHours');
if(Page_ClientValidate()) //validates all groups
{
document.getElementById("<%=ImgAjaxloaderClarification.ClientID %>").style.display = "block";
return true;
}
return false;
}