0

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

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

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 属性后不会调用或应用。

有什么解决方法吗?

4

1 回答 1

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';");
于 2012-10-12T07:16:31.597 回答