- 浏览: 1984468 次
- 性别:
- 来自: 哈尔滨
文章分类
- 全部博客 (188)
- java基础 (22)
- 经验+注意 (39)
- Oracle (34)
- javaScript (28)
- jquery (24)
- iBatIS (11)
- hibernate (8)
- struts1.x (1)
- spring (1)
- SVN (1)
- myeclipse (12)
- jbmp工作流 (1)
- 其他 (22)
- 杂谈 (4)
- struts2 (5)
- css (4)
- 正则表达式 (2)
- jstl标签 (4)
- Java Tree (2)
- Jboss (1)
- json (1)
- HttpURLConnection (1)
- Apache commons工具包 (1)
- groovy+grails (2)
最新评论
-
q2425533:
Java字符串倒序输出 + 数组的排序 -
变脸小伙:
今天也跟着学习了,用到了
struts2拦截器 获得请求方法名+获得请求参数 -
tuspark:
讲解的很不错。URLConnection类的内容也可以看这篇文 ...
HttpURLConnection详解 -
wolf746773350:
...
window.location.href/replace/reload()--页面跳转+替换+刷新 -
wolf746773350:
[/flash]
window.location.href/replace/reload()--页面跳转+替换+刷新
在项目中我使用了AJAX异步校验,来校验业务密码是否正确,本地环境下没有问题,但拉到真实环境,杭州服务器出现问题,给input框的blur()事件加了异步校验,点击保存按钮让所以input框失去焦点,业务密码正确,即可以通过,但是由于真实环境服务器返回数据的时间不一定,所以出现没返回数据那,就已经提交了表单。
#我的代码
<script type="text/javascript"> $(document).ready(function(){ var empAlterReason = true; var checkPassword2 = true; /*业务密码*/ $("#password2").blur(function(){ var password2 = $("#password2").val(); var textPassword2 = $("#textPassword2"); textPassword2.html(""); if( password2=='' ) { textPassword2.html("<font color='red'>业务密码不能为空!</font>"); checkPassword2 = false; return; } if( password2!='' ) { if( passValidate(password2) ) { textPassword2.html("<font color='red'>业务密码格式有误!</font>"); checkPassword2 = false; return; } else { var yz=$.ajax({ type:'post', url:'validatePwd2_checkPwd2?password2='+password2, data:{}, cache:false, dataType:'json', success:function(data){ if( data.msg =="false" ) //服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间 { textPassword2.html("<font color='red'>业务密码不正确!</font>"); $("#validatePassword2").val("pwd2Error"); checkPassword2 = false; return; } }, error:function(){} }); } } $("#validatePassword2").val("pwd2Success"); checkPassword2 = true; return; }); /*修改原因*/ $("#alterReason").blur(function(){ var textRoleAlterReason = $("#textRoleAlterReason"); textRoleAlterReason.html(""); var alterReason = $("#alterReason").val(); if(alterReason=='') { textRoleAlterReason.html("<font color='red'><br>修改原因不能为空!</font>"); empAlterReason = false; return; } if(alterReason=='请输入') { textRoleAlterReason.html("<font color='red'><br>修改原因必填项!</font>"); empAlterReason = false; return; } if(illegalChar(alterReason)) { textRoleAlterReason.html("<font color='red'><br>修改原因不能包含非法字符!</font>"); empAlterReason = false; return; } empAlterReason = true; return; }); /*保存,点击事件*/ $("#mybutton1").click(function(){ var validatePassword2 = $("#validatePassword2").val(); $("input,textarea").blur();//这里触发焦点事件,但是服务器还没返回值,validatePassword2的值还没改变,还是'pwd2Success',但是代码还是按照顺序执行,所以下面的query()方法还是执行了 if(validatePassword2=='pwd2Success' && checkPassword2==true && empAlterReason == true){ query(); } }); }); function resetForm() { $("#alterReason").val(""); $("#password2").val(""); $("#textPassword2").html(""); $("#textRoleAlterReason").html(""); } function calBack(){ history.back(-1); } function query() { if(document.getElementById('roleName').value == ""){alert('角色名称不能为空!'); return false;}else{ } if(document.getElementById('alterReason').value == ""){alert('授权原因不能为空!'); return false;}else{ } // 获得被授权的信息总数 var len= document.getElementById("roleList").length; var tempop=""; for(var i=0;i<len;i++){ tempop = tempop +";"+ document.getElementById("roleList").options[i].value; } var confirm = "您确定修改权限信息吗?"; if(window.confirm(confirm)){ document.getElementById('privSelect').value=tempop; document.form1.action = "<%=path%>/Role_impower"; document.form1.submit(); alert("操作成功!"); } } </script>
#jsp页面代码
<tr> <td colspan="2" class="txtright" >业务密码:</td><td class="txtleft"> <input type="password" name="password2" id="password2" maxlength="18" class="inputbox"/> <input type="hidden" id="validatePassword2" value="pwd2Success"/> <span id="textPassword2"></span> </td> </tr> <tr> <td colspan="2" class="txtright"></td><td class="txtleft"> <input type="button" id="mybutton1" value="保 存" class="btn"/> <input type="button" value="重 置" onclick="resetForm()" class="btnalt"/> <input type="button" value="返 回" onclick="history.go(-1);" class="btnalt"/> </td> </tr> </table> </td> </tr>
#####注意:这问题本机、内网都没问题,因为速度很快,几乎不用考虑异步时间,但是真实服务器就不行了,返回响应时间可能会慢一些。。。 切记!!!
发表评论
-
即时搜索的input和propertychange方法
2018-01-16 16:59 1730做搜索功能的时候,经常遇到输入框检查的需求,最常见的是即时搜 ... -
java获得系统盘符(Windows、linux自动切换)
2017-12-22 16:08 2415做文件读写时,本机开发是windows系统,但服务器是li ... -
mysql 时间列自动插入当前日期时间
2012-05-09 13:46 3161用current_timestamp,不过这个默认值 ... -
java switch的使用+switch用String作为条件
2012-03-23 16:58 67377一、java switch的基本使用: /* int参数的s ... -
Java字符串倒序输出 + 数组的排序
2012-03-08 18:06 9337一、Java字符串倒序输出 方法一:利用 ... -
HTML转义字符
2012-02-23 14:53 2708HTML字符实体(Character Entit ... -
jQuery Ajax 实例 ($.ajax、$.post、$.get)
2012-02-09 10:43 300881Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦, ... -
checkbox加onClick事件,ajax异步请求后台,$.ajax
2012-02-08 17:02 6805XXX平台要实现一个功能,公告弹出页面上使用复选框设置不再通知 ... -
jquery显示、隐藏div的方法
2012-01-16 13:27 23583###例子 $("#top_notice" ... -
js限制文件上传类型
2012-01-16 11:24 2272var name = $('#file').val(); v ... -
jquery 二级联动
2012-01-09 14:35 1265jquery 二级联动 -
Random()随机数+随机切换图片
2011-12-13 14:55 3155一、Random()随机数 转自:http://bl ... -
Request对象各种获得路径的方法+Request对象各种方法(.getRemoteAddr)
2011-12-13 14:43 9689用jboss发布的工程,测试request对象返回路径的方法, ... -
HttpURLConnection与URL---接口的应用
2011-11-26 10:14 1863一版XXX中的更新内存的接口应用: 一、定义一个有返回 ... -
ibatIS的<dynamic prepend="WHERE">原理,是判断前一个AND字母是否存在
2011-10-31 17:51 24853今天付出了惨痛的代价,调sqlMap文件调了一下午,杯具啊!! ... -
session详细解析(是否过期、失效时间)
2011-10-26 15:22 11266Session一直是我们做web项 ... -
insert into (select from)表复制+select into from表复制
2011-10-18 17:20 12115Insert INTO table(field1,field2 ... -
jsp、js、<a>的访问方式(绝对路径+相对路径)
2011-10-17 17:38 32927一、项目中应用: 1.PrivInterceptor ... -
jquery.cookies.2.2.0+半小时后自动跳转至sessionView.jsp提示session过期
2011-10-15 13:15 2820详细方法说明参见:http://code.google.com ... -
struts2拦截器 获得请求方法名+获得请求参数
2011-10-14 16:15 24411SSI框架为基础开发的,hulian平台 struts2拦截 ...
相关推荐
本工程有两种ajax异步校验注册时输入的username是否与数据库中的值重复,通过mybatis实现数据库,通过servlet或者struts2实现控制层,通过ajax,jquery,json,实现异步校验
对于异步校验,我们可以利用jQuery的`$.ajax()`函数或者更简单的`$.get()`或`$.post()`方法。 下面是一个使用jQuery实现的用户名异步校验的基本步骤: 1. **事件监听**:我们需要监听用户的输入,例如当用户离开...
这可以通过Ajax异步请求来实现,无需用户等待整个页面刷新,提供更好的用户体验。 以下是一般的步骤: 1. **前端视图(View)**:在HTML表单中,我们添加一个事件监听器,如`onkeyup`或`onblur`,当用户在用户名...
Ajax的核心是利用JavaScript与服务器进行异步数据交换,增强了用户体验,使得页面交互更加流畅。本教程主要针对初学者,讲解如何使用Ajax进行简单的用户名校验。 一、Ajax基础 Ajax的核心组件包括XMLHttpRequest...
【图文验证码(Ajax异步校验)】是一种常见的网络安全机制,用于防止自动化程序(如机器人)非法操作网站,如注册、登录或提交表单。在本项目中,明日科技提供了完整的源码实现,旨在帮助开发者理解和应用此类验证码...
本案例“案例_Ajax_用户名异步校验”是关于如何利用Ajax实现一个实时验证用户输入用户名是否可用的功能,它可以帮助提高用户体验,减少不必要的等待时间。以下是关于这个主题的详细知识点: 1. **Ajax基本原理**: ...
Ajax可以在此场景中发挥作用,通过在用户输入时或输入结束后立即发送校验请求,而不必等待用户提交表单。 **实现步骤:** 1. 创建一个HTML输入框,用于用户输入用户名。 2. 使用JavaScript(可能结合事件委托)监听...
然而,异步校验也有其局限性和问题,例如: - **网络延迟**:在网络条件不佳的情况下,异步请求可能会导致用户等待时间过长。 - **用户体验**:如果异步校验失败,用户可能需要多次尝试才能成功提交表单。 - **代码...
首先,要实现jquery easyUI中ajax异步校验用户名,需要对jquery及jquery easyUI有一定的了解。在前端页面中引入jquery.js和jquery.easyui.min.js这两个基本的js文件,以及对应的样式文件easyui.css和icon.css。然后...
使用AJAX完成用户名是否存在异步校验: 1.事件触发: * onblur 2.编写AJAX代码: * 项Action中提交:传递username参数 3.编写Action * 接收username:模型驱动接收. 4.* 编写实体类 * User * User.hbm.xml * 配置到spring...
本示例"图片上传下载ajax异步操作前后台代码-demo"提供了完整的解决方案,允许用户通过Ajax技术实现图片的上传和下载,同时包含了对手机号码、身份证等常见输入的验证。以下是关于这个项目的详细知识点: 1. **Ajax...
3. **异步验证的优化**:避免频繁的Ajax请求,可以设置延迟(debounce)或节流(throttle)来控制请求频率。 4. **前后端联动验证**:虽然前端验证可以提高用户体验,但安全起见,后端也需要进行同样的验证,防止...
arr[0].posturl("/FormValidation/ajax/ajax-validation.asmx/user_isNull", "name"); arr[0].check("tname", "td1", "checkusername", true, true); //密码验证 arr[1] = new XQValidation(); arr[1]....
2. **异步提交**:Ajax的优势在于异步性,这意味着页面不会因为等待服务器响应而冻结。当用户输入用户名并点击检查按钮时,JavaScript会启动一个异步请求,同时用户可以继续在页面上进行其他操作。 3. **发送请求**...
6. **异步校验**:对于复杂校验,可能需要异步调用API或服务来验证数据,如检查用户名是否已存在。这时,可以利用`$.ajax()`或`$.getJSON()`发起异步请求,并在回调中处理结果。 7. **插件和库**:jQuery社区提供了...
使用 jQuery Ajax 异步登录,并验证用户输入信息(maven),图文教程地址:https://blog.csdn.net/qq_40147863/article/details/85999375
标题 "S2SH+jQuery+JSON+Ajax注册--异步校验" 提及的技术栈主要包含四个关键部分:Struts2 (S2),Spring,Hibernate(SSH)这三大企业级开发框架,以及jQuery、JSON和Ajax这三者组成的前端交互技术。这篇博客文章...
"利用Ajax实现无刷新验证用户名和密码是否正确"这一技术就是为了让用户在输入登录信息时能够得到即时反馈,无需等待页面整体刷新,极大地提升了交互体验。Ajax(Asynchronous JavaScript and XML)是一种创建动态...