2012-10-12 94 views
0

我有一個搜索屏幕,其中有一個按鈕,點擊時應用搜索過濾器。JavaScript驗證後更改按鈕屬性

當用戶點擊該按鈕時,它的文本(標題)從改變提交檢索數據,並從黑色變爲綠色。這是通過添加按鈕屬性在代碼隱藏中處理的,如下所示。

btnSubmit.Attributes.Add("onClick", "this.value='Retrieving 
Data...';this.style.color='green';"); 

單擊此按鈕後,代碼後面的驗證很少,錯誤消息顯示在標籤中。

現在我已經將這些驗證轉移到JavaScript(單擊按鈕時調用JavaScript函數)並根據是否傳遞所有驗證返回true或false。

下面是HTML代碼:

asp:Button ID="btnSubmit" TabIndex="110" runat="server" Width="160px" 
Font-Names="Tahoma" EnableViewState="False" Text="Submit" 
Font-Bold="True" OnClick="btnSubmit_Click" 
OnClientClick="return Validation();" 

下面是我的javascript功能

function Validations() 
{ 
    if($('#<%=txtEmpName.ClientID%>').val() == "" && $('#<%=txtEmpDescription.ClientID%>').val() == "") 
    { 
     if($('#<%=ddlDept.ClientID%>').val() == "0" || $('#<%=ddlManager.ClientID%>').val() == "0") 
     { 
      alert('Please select something'); 
      return false; 
     } 
    } 
    return (true); 
} 

添加這些驗證後,按鈕文本和文本顏色是沒有得到改變。 當我檢查呈現的HTML代碼時,首先調用Validation()函數,然後添加屬性。我認爲返回true或false後,屬性不會被調用或應用。

有什麼解決方法嗎?

回答

1

Validations方法改成這樣:

function Validations() 
{ 
    if($('#<%=txtEmpName.ClientID%>').val() == "" && $('#<%=txtEmpDescription.ClientID%>').val() == "")  
    { 
     if($('#<%=ddlDept.ClientID%>').val() == "0" || $('#<%=ddlManager.ClientID%>').val() == "0")  
     { 
      alert('Please select something'); 
      return false; 
     }  
    } 

    //Change text and color. 
    $('#<%= btnSubmit.ClientID %>').val('Retrieving data...').css('color', 'green'); 

    return (true); 
} 

此外,您將不再需要該位了:

btnSubmit.Attributes.Add("onClick", "this.value='Retrieving Data...';this.style.color='green';"); 
+0

感謝尼克...我設法解決這個....並且您提供的解決方案與您發送的內容完全匹配。唯一的一點是,當搜索完成時,我將我的按鈕的顏色和文本再次更改爲上一個。 – user1717270

+0

沒問題。樂意效勞。 –