asp.ne如何使用javascript去验证客户端信息,如果验证成功则送往服务器端处理,否则在客户端提示用户(不返回到服务器端处理)
一、问题
在网站一般都有很多地方需要用户去填写一些信息,然后用户点击提交,将信息送往后台储存到数据库中。在这一个过程我以前做法直接在button的click事件中来判断用户输入的数据是否完整和合法,虽然这样可以实现验证用户输入的信息,但是每次用户点击提交按钮时候页面都会刷新一次,这样对用户会造成比较差的体验。如果我们把用户验证消息这一步放到客户端,当用户输入正确的信息时候才提交到服务器去处理,否则不提交到服务器,也就是不刷新页面。
这样实现的好处我认为有以下两点:1、有更好的用户体验。2、编写服务器端代码时候不会有一大推的逻辑验证的代码,让代码看起来更舒服、整洁(个人很讨厌这样很多验证信息的逻辑代码)
二、解决方案
1、asp.net的button控件有两个事件
a、onclick:在服务器端执行的代码(c#代码)。
b、OnClientClick:在客户端执行的代码(javascript代码)
这两个事件执行的先后的关系是,先执行OnClientClick事件,如果OnClientClick执行之后返回为true,再执行onclick代码,否则不执行onclick的代码,通过对这两个事件的分析我们就可以很容易的使用客户端的javascript的脚本对用户输入的信息进行验证了,如果验证通过了返回true,执行服务端的代码,否则不返回到服务器端。通过这两个事件就可以实现我们想要的效果了。
2、接下来我们开始写代码吧。aspx的客户端代码如下。
html:
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button"
OnClientClick ="return clientClick()" onclick="Button1_Click" />
<input id="txtName" type="text" />
</div>
</form>
</body>
javascript:
function clientClick() {
var el = document.getElementById("txtName");
if (el.value == "") {
alert("请输入用户名");
return false;
}
return true;
}
</script>
在写客户端代码有一个需要注意的地方,一般情况我们写html上的某个元素的事件执行函数一般是这样写的如:onclick=“clickMethod”,根本不会再前面加上一个return,但是这个OnClientClick却不一样,如果你不加上return的话,即使你在javascript中的代码的返回值为false,当你点击提交了之后计算是它还是会执行服务器端的代码。所以在验证客户端信息的时候一定要在javascript的方法前面加上return。
3.服务器的代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("用户已经输入的用户名");
}
只需要通过简单的三步就能实现在客户端验证用户输入的信息,只有当正确时候才会返回让服务器去处理。
如果有些的不好的,或者是有什么不足的地方,希望各位能够能够指出来。谢谢。
三、引用
参考:http://blog.163.com/xiao_mege/blog/static/72942753201072053841131/
asp.ne如何使用javascript去验证客户端信息,如果验证成功则送往服务器端处理,否则在客户端提示用户(不返回到服务器端处理)的更多相关文章
- ASP.NET MVC的客户端验证:jQuery的验证
之前我们一直讨论的Model验证仅限于服务端验证,即在Web服务器根据相应的规则对请求数据实施验证.如果我们能够在客户端(浏览器)对用户输入的数据先进行验证,这样会减少针对服务器请求的频率,从而缓解W ...
- asp.net 登陆验证 Form表单验证的3种方式 FormsAuthentication.SetAuthCookie;FormsAuthentication.RedirectFromLoginPage;FormsAuthenticationTicket
我们在登陆成功后,使用下面的3种方法,都是同一个目的:创建身份验证票并将其附加到 Cookie, 当我们用Forms认证方式的时候,可以使用HttpContext.Current.User.Ident ...
- ASP.NET Core 使用 JWT 搭建分布式无状态身份验证系统
为什么使用 Jwt 最近,移动开发的劲头越来越足,学校搞的各种比赛都需要用手机 APP 来撑场面,所以,作为写后端的,很有必要改进一下以往的基于 Session 的身份认证方式了,理由如下: 移动端经 ...
- ASP.NET MVC5(四):数据注解和验证
前言 用户输入验证的工作,不仅要在客户端浏览器中执行,还要在服务端执行.主要原因是客户端验证会对输入数据给出即时反馈,提高用户体验:服务器端验证,主要是因为不能完全信任用户提供的数据.ASP.NET ...
- asp.net core系列 45 Web应用 模型绑定和验证
一. 模型绑定 ASP.NET Core MVC 中的模型绑定,是将 HTTP 请求中的数据映射到action方法参数. 这些参数可能是简单类型的参数,如字符串.整数或浮点数,也可能是复杂类型的参数. ...
- ASP.NET MVC 音乐商店 - 6. 使用 DataAnnotations 进行模型验证
在前面的创建专辑与编辑专辑的表单中存在一个问题:我们没有进行任何验证.字段的内容可以不输入,或者在价格的字段中输入一些字符,在执行程序的时候,这些错误会导致数据库保存过程中出现错误,我们将会看到来自数 ...
- ASP.NET Web Api 服务器端变了,客户端该如何修改请求(转载)
转载地址:http://www.cnblogs.com/fzrain/p/3558765.html 前言 一旦我们将API发布之后,消费者就会开始使用并和其他的一些数据混在一起.然而,当新的需求出现时 ...
- ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证
ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...
- ASP.NET开发在JavaScript有中文汉字时出现乱码时简单有效的解决
一般情况在使用ASP.NET开发使用JavaScript有中文汉字时不会出现乱码情况,比如:alert('您看到我了吗?');这样直接输入中文汉字的代码中是不会出现乱码的,如果出现了,一是检查Web. ...
随机推荐
- $_ENV和$GLOBALS预定义变量
1,$_ENV该全局数组可以获取环境变量,在php5.3中默认禁用,但是可以在php.ini中启用. variables_order="EGPCS" 2,$GLOBALS一个包含了 ...
- powerDesiner设计数据库的一些用法
数据库的设计主要有以下几个步骤: 1:需求分析:根据业务需求分析出满足客户的需求,从而建立相应的数据库 2:概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型:(entity-relation ...
- vue-cli新建vue项目安装axios后在IE下报错
使用脚手架新建了一个vue项目,可以在IE9+浏览器运行,但是在添加了axios后,在IE下就报错了 首先是安装axios,在命令行执行: $ npm install axios -s //执行命令, ...
- 【bzoj5210】最大连通子块和 动态dp
动态$dp$好题 考虑用树链剖分将整棵树剖成若干条链. 设x的重儿子为$son[x]$,设$x$所在链链头为$top[x]$ 对于重链上的每个节点(不妨设该节点编号为$x$)令$f[x]$表示以$x$ ...
- 在 Ubuntu下安装 labelImg (标数据用)
安装 SIP 下载 SIP 并解压 : $ sudo python configure.py $ make $ sudo make install 安装 依赖库 $ sudo apt-get ins ...
- Sharepoint Timer job问题汇总
解决方案发布最好发布到GAC中,使用WebApplication很多时候会有问题.TimerJob并非是在IIS下运行,所以发布到wss目录下的dll不能使用. 如果解决方案中只有一个Timer Jo ...
- json对象按时间排序
//正序var data = {"rows": [{"name": "张三","time": "2011/4/ ...
- MicrosoftOfficeProfessionalPlus2013激活方法
MicrosoftOfficeProfessionalPlus2013已经使用很久(估计快一年了吧),但一直是未激活状态,每次打开都要弹出那个未激活的提示信息,很烦,但不知道自己怎么能够忍受这么久的, ...
- Eclipse编辑JS响应慢,复制粘贴卡顿的解决方案
我使用的是官网标准版的eclipse4.3 for javaEE, 写JS时卡的简直无法忍受,尝试去掉所有的validate,包括菜单和项目属性中的都没作用. 整个人都急疯了~ 后来在项目根目录.pr ...
- python实现float/double的0x转化
1. 问题引出 最近遇到了一个小问题,即: 读取文本文件的内容,然后将文件中出现的数字(包括double, int, float等)转化为16进制0x存储 原本以为非常简单的内容,然后就着手去写了py ...