Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在服务器上提交之前隐藏asp标签文本_Asp.net_Label_Validation - Fatal编程技术网

Asp.net 在服务器上提交之前隐藏asp标签文本

Asp.net 在服务器上提交之前隐藏asp标签文本,asp.net,label,validation,Asp.net,Label,Validation,这个问题看起来很简单,但它让我很痛苦 我正在手动创建一个登录页面,用于检查来自linq的用户电子邮件和密码。在登录页面上有一个asp标签,显示基于查询结果的错误消息,如“用户不存在”或“用户处于非活动状态”等。两个文本框上都有asp必需的字段验证器。 问题是,如果用户第一次尝试失败并且消息显示在标签上,除非用户成功登录,否则消息不会消失。我希望文本在提交按钮上返回为lable1.text=“”,但它不能作为服务器端控件,如果文本框为空,文本框验证器不会让它离开。我必须使用java脚本吗?这里最简

这个问题看起来很简单,但它让我很痛苦 我正在手动创建一个登录页面,用于检查来自linq的用户电子邮件和密码。在登录页面上有一个asp标签,显示基于查询结果的错误消息,如“用户不存在”或“用户处于非活动状态”等。两个文本框上都有asp必需的字段验证器。
问题是,如果用户第一次尝试失败并且消息显示在标签上,除非用户成功登录,否则消息不会消失。我希望文本在提交按钮上返回为lable1.text=“”,但它不能作为服务器端控件,如果文本框为空,文本框验证器不会让它离开。我必须使用java脚本吗?

这里最简单的方法是清除javascript中的消息,正如您所想的那样

<asp:Button ID="SubmitButton" OnClientClick="ClearLableText" runat="server" />

和更新的javascript,根据您的评论:

function ClearLableText() { var element = document.getElementById("<% this.lblMessage.ClientID %>"); element.innerHTML = ""; } 
函数clearLabletText(){var element=document.getElementById(“”;element.innerHTML=“”;}
您可以试试这个

protected void page_load(object sender, EventArgs e)
{
    MyMessageLabel.Text = ""; //or .Visible = false;
}

protected void Button_Click(object sender, EventArgs e)
{
   //By this time, page_load had already executed and the Message Label cleared 
   MyMessageLabel.Text = "new result from server";

   if(validResult)
     //RedirectToWhere();
   else
     //StayOnPage();
}

希望它对您有效。

您是否尝试禁用标签的查看状态?登录成功后是否将您的登录发回自身?是否重定向?@AmiramKorach,您说我尝试过,但没有用。这不等于使可见=假吗?如果是这样,我们将如何再次启用它?对不起,我是新来的asp@tcoder是的,它将从数据库返回一个值,并使用该值将用户引导到下一页。如果like没有返回值,标签将显示首先尝试的相应msg。由于这是按钮事件,如何将标签id传递给javascript函数并使其值为null?我尝试了与html元素相同的方法,但它在函数调用时不断给出异常,或者在java脚本中返回null。这是我的函数调用和javascript:onclick=“btnLogin_Click”OnClientClick=“ClearLabletText(“”);“函数ClearLabletText(elementId){var element=document.getElementById(elementId);element.value=”“;}这个javascript选项应该可以工作。从函数中尝试
var label=document.getElementById()
,而不是传递itI。我已根据您的评论更新了我的答案。它的耦合比您最初编写的要紧密一些,但我假设这是一个相当具体的东西,在很多地方不会被重用。(编辑:tcoder和我的想法相同)不起作用:(变量显示null为值。例如,它没有获取元素。您可以查看源代码并在此处复制元素和脚本吗?此解决方案的问题是,当字段为空时,所需的字段验证器将阻止回发,而消息将保留。上述逻辑将永远不会触发,因为它依赖于回发。thanks寻求帮助。这是我最初拥有的。但一旦按下按钮并且登录失败,lable将获取错误文本。我希望文本字段验证程序在将其发送到服务器或重新加载页面之前检查所需字段时将其删除。就像asp验证程序错误msgs一样