RequiredFieldValidator和OnClientClick Together

时间:2011-11-23 15:37:52

标签: asp.net

我有一个文本框(必须使用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不起作用。

任何帮助。

2 个答案:

答案 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;
}