2012-10-12 72 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

没问题。乐意效劳。 –