在JavaScript验证后更改按钮属性

时间:2012-10-12 05:25:54

标签: c# javascript asp.net

我有一个搜索屏幕,其中有一个按钮,点击时会应用搜索过滤器。

当用户点击该按钮时,其文本(标题)从提交更改为检索数据,颜色从黑色变为绿色。这是通过添加按钮属性在代码隐藏中处理的,如下所示。

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 个答案:

答案 0 :(得分: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';");