我有一个搜索屏幕,其中有一个按钮,点击时会应用搜索过滤器。
当用户点击该按钮时,其文本(标题)从提交更改为检索数据,颜色从黑色变为绿色。这是通过添加按钮属性在代码隐藏中处理的,如下所示。
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属性后不会被调用或应用。
有解决方法吗?
答案 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';");