在使用验证控件进行验证后,如何获得焦点!

tintown 2005-01-24 01:26:41
在ASP.NET的验证中,我使用了Validator控件进行验证,可是在验证后,没有获得焦点,有没有好的方式,能在验证后,对未通过的第一个控件获得焦点!!
...全文
378 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
tintown 2005-01-24
  • 打赏
  • 举报
回复
eval(alert(Page_Validators[i].errormessage));
这样就行了:)
整理如下:
function check(){
for (var i=0 ;i<Page_Validators.length;i++)
{
if (RequiredFieldValidatorEvaluateIsValid(eval(Page_Validators[i].id))==false)
{ eval(alert(Page_Validators[i].errormessage));
document.all(Page_Validators[i].controltovalidate).focus();
break;}
}
}
rickjelly2004 2005-01-24
  • 打赏
  • 举报
回复
alert(Page_Validators[i].errormessage
tintown 2005-01-24
  • 打赏
  • 举报
回复
楼上的,谢谢,挺不错了,不过,验证提示没取到啊,如何取?
还有,那个SumamryValidator无用开之地了!!我本来是想用MS的验证方式验证完后,获个焦点就行了,看来,还是打乱了MS的验证模式了!
rickjelly2004 2005-01-24
  • 打赏
  • 举报
回复
循环的

function check(){
for (var i=0 ;i<Page_Validators.length;i++)
{
if (RequiredFieldValidatorEvaluateIsValid(eval(Page_Validators[i].id))==false)
{alert("err");
document.all(Page_Validators[i].controltovalidate).focus();
break;}
}}
rickjelly2004 2005-01-24
  • 打赏
  • 举报
回复
function check(){
if (RequiredFieldValidatorEvaluateIsValid(eval(Page_Validators[1].id))==false)
{alert("err");
document.all(Page_Validators[1].controltovalidate).focus();}
}


用了就行了
Page_Validators是一个数组,里面放的是页面上所有的验证控件
AllenTing 2005-01-24
  • 打赏
  • 举报
回复

BaseValidator base ;

foreach ( base in Page.Validators )//Page.Validators 是叶面中所有验证控件集合
{
if(!base.IsValid)
{
base.Focus();
break;
}
}
至于何时触发,应该就是你点击按钮的事件处理函数里
tintown 2005-01-24
  • 打赏
  • 举报
回复
楼上的,请问如何遍历ValidateControl?? 还有,在何时触发这个遍历函数???
AllenTing 2005-01-24
  • 打赏
  • 举报
回复
第一种方法:在服务端处理时遍历每一个验证控件,当遇到第一个不通过验证的控件 validatecontrol 时,执行
validatecontrol.Focus();
即设置焦点在该控件;
第二种方法: 在客户端验证,即使用js中的focuson()函数来处理第一个 不通过验证的控件
tintown 2005-01-24
  • 打赏
  • 举报
回复
楼上的有点道理,使用CustomValidator,自己写脚本,在脚本中写上获取焦点的方法!!
不过,这样的话,验证控件的好多验证方式,必须得手工写JS来判断了!!
chinasqf 2005-01-24
  • 打赏
  • 举报
回复
ClientValidationFunction="check(控制的控件ID)"
chinasqf 2005-01-24
  • 打赏
  • 举报
回复
却是比较困难,如果控制的不多的话,还是自己写JS吧.VS2005不知道考虑这个了没
tintown 2005-01-24
  • 打赏
  • 举报
回复
对,我是想使用验证控件后,想获得焦点,我就是不知道,客户端脚本要如何写,要遍历Validator才行吧!!客户端脚本如何做?在何时激发这种验证呢?
rickjelly2004 2005-01-24
  • 打赏
  • 举报
回复
我知道你的意思
你就是加一个
<asp:RequiredFieldValidator id="RequiredFieldValidator2" style="Z-INDEX: 116; LEFT: 510px; POSITION: absolute; TOP: 295px"
runat="server" ControlToValidate="TextBox3" ErrorMessage="1"></asp:RequiredFieldValidator>

<asp:ValidationSummary id="ValidationSummary1" style="Z-INDEX: 119; LEFT: 555px; POSITION: absolute; TOP: 290px"
runat="server" ShowMessageBox="True"></asp:ValidationSummary>

来报MESSAGE呀,是不是??
我就是想叫你把ValidationSummary换成
<asp:CustomValidator id="CustomValidator1" style="Z-INDEX: 118; LEFT: 355px; POSITION: absolute; TOP: 385px"
runat="server" ErrorMessage="CustomValidator" ClientValidationFunction="check()"></asp:CustomValidator>
自己来判断一下,看有没有验证失败的,有的话,就设置一下焦点
tintown 2005-01-24
  • 打赏
  • 举报
回复
楼上的,拜托!看清我的问题是什么??
rickjelly2004 2005-01-24
  • 打赏
  • 举报
回复
用用户验证控件
tintown 2005-01-24
  • 打赏
  • 举报
回复
谢谢楼上的,不过,我要的不是这种,你们要明白一下我的问题是什么!
请高手们帮忙啊!不会的朋友,顶一把!
AllenTing 2005-01-24
  • 打赏
  • 举报
回复
这是一个使用js来控制焦点的例子:
Private Sub SetFocus(ByVal controlToFocus As Control)
Dim scriptFunction As New StringBuilder
Dim scriptClientId As String

scriptClientId = controlToFocus.ClientID
scriptFunction.Append("<script language='javascript'>")
scriptFunction.Append("document.getElementById('" & scriptClientId & "').focus();")
scriptFunction.Append("</script>")
RegisterStartupScript("focus", scriptFunction.ToString())
End Sub

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If (Page.IsPostBack = False) Then
SetFocus(TextBox1)
End If
End Sub
tintown 2005-01-24
  • 打赏
  • 举报
回复
楼上的,我就是想这样啊!!问题是怎么搞啊!!!!
simon8181 2005-01-24
  • 打赏
  • 举报
回复
如果有未通过的,你可以把焦点置回第一个控件
MyXQ 2005-01-24
  • 打赏
  • 举报
回复
mark

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧