|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。请求:表单顶用了考证控件,怎样能在考证控件的客户端剧本考证乐成以后,实行一段js剧本,好比弹出确认框,然后再提交,点作废则不提交。假如考证控件没经由过程,好比用户没填名字的话,不会提交。
网上看了一些文章,有的说不成能,有的则是利用服务端代码,必要提交页面后才干准确实行。
上面的代码的测试情况是VS.NET2008+IE8,没有背景代码:
道理:ASP.NET考证控件在天生网页的时分会酿成一年夜堆的客户端Javascript剧本,用来在客户端考证。
1.先敲进以下代码(ValidateControl.aspx):
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="ValidateControl.aspx.cs"Inherits="ValidateControl"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>考证控件,乐成后确认是不是提交数据</title>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:LabelID="Label1"runat="server"Text="用户名:"></asp:Label>
<asp:TextBoxID="TextBox1"runat="server"></asp:TextBox>
<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="server"
ControlToValidate="TextBox1"ErrorMessage="用户名必需输出!"></asp:RequiredFieldValidator>
<asp:ButtonID="Button1"runat="server"Text="提交"/>
</div>
</form>
</body>
</html>
2.运转该页面,在IE中“检察源文件”
天生上面这些关头代码(摘录关头的几行):
...
<formname="form1"method="post"action="ValidateControl.aspx"language="javascript"id="form1">
...
functionWebForm_OnSubmit(){
if(typeof(ValidatorOnSubmit)=="function"&&ValidatorOnSubmit()==false)returnfalse;
returntrue;
}
能够看出form1表单是经由过程WebForm_OnSubmit函数考证,假如前往false则暗示失利,不提交数据;true提交数据
而WebForm_OnSubmit函数又是挪用ValidatorOnSubmit函数来实行考证的,ValidatorOnSubmit前往false暗示考证失利。
3.使用ValidatorOnSubmit函数考证控件
回到第一步最后的代码,将<formid="form1"runat="server">改成:
<formid="form1"runat="server">
再次运转ValidateControl.aspx页面,完成了最后的目标。
再次在IE中“检察源文件”WebForm_OnSubmit函数被改成了:
functionWebForm_OnSubmit(){
if(typeof(ValidatorOnSubmit)=="function"&&ValidatorOnSubmit()==false)returnfalse;if
(ValidatorOnSubmit()==true)returnconfirm(确认提交数据吗?);
returntrue;
}
基于以上道理,还能够把代码简化为:
<formid="form1"runat="server">
你能够经由过程这类体例拔出本人想要的js代码。有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。 |
|