jquery验证失效的疑惑

艾小仙 2011-12-01 07:42:42


var rPic="<img src='images/right.gif'>";
//验证用户名
function checkName()
{

var nameVal=$.trim($("#userName").val());
if(nameVal=="")
{
$("#errName").html("用户名不能为空");
return false;
}
if(nameVal.length<0||nameVal.length>20)
{
$("#errName").html("用户名长度不在有效范围");
return false;
}
$("#errName").html(rPic);
return true;
}
//交互后台,验证用户名是否存在
function checkNameExist()
{
var nameVal=$.trim($("#userName").val());
$.get("user/createUser.action?userName="+nameVal,null,function(data)
{
if("ok"==data)
{
$("#errName").html(rPic);
return true;
}else{
$("#errName").html("用户名已存在");
return false;
}
});
}
//鼠标划过事件验证
$(document).ready(function()
{
$("#userName").blur(function()
{
if(checkName())
checkNameExist();
});

});
function createUser()
{
var nameVal=$.trim($("#userName").val());
if(!checkName())
return;
if(!checkNameExist())
return;
$.get("user/addUser.action?userName="+nameVal,},function(data)
{
if("success"==data)
{
alert("创建用户成功!");
window.location.href="user/home.action";
return;
}
alert("服务器忙,请稍后重试");
window.location.href="user/createUser.jsp";
return;
});
}

问题就在最后这一下了 if(!checkNameExist())-->这里只要一调用那种交互后台的方法,整个验证就失效了
验证不出了。很疑惑啊
...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
艾小仙 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ifandui 的回复:]

if(!checkNameExist())
return;
你checkNameExist里的ajax请求如果是异步 服务器端还没有响应回来 客户端会继续往下面走
改成同步的就OK了 具体找jquery ajax的async参数 但是你的结构写的有问题 submit应该是在ajax的回调函数里提交才对
[/Quote]
谢谢了。这个问题改成同步果然是可以搞定的。
结构问题?最后一句话还是没怎么看明白。。。
p2227 2011-12-01
  • 打赏
  • 举报
回复
原来是这样啊,我还看楼主都没有在其他地方调用createUser()就没看这个函数了。
默默不得鱼 2011-12-01
  • 打赏
  • 举报
回复
if(!checkNameExist())
return;
你checkNameExist里的ajax请求如果是异步 服务器端还没有响应回来 客户端会继续往下面走
改成同步的就OK了 具体找jquery ajax的async参数 但是你的结构写的有问题 submit应该是在ajax的回调函数里提交才对
p2227 2011-12-01
  • 打赏
  • 举报
回复
http://api.jquery.com/jQuery.ajax/

你直接访问user/createUser.action?userName=xxx能成功检查用户名不
艾小仙 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ifandui 的回复:]

楼主搞错ajax的回调函数怎么用了 把你的ajax改成同步的
[/Quote]
这个我没看明白您的意思?改成同步的?能解释下吗
默默不得鱼 2011-12-01
  • 打赏
  • 举报
回复
楼主搞错ajax的回调函数怎么用了 把你的ajax改成同步的
什么是SWFUpload?   SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点   * 可以同时上传多个文件;   * 类似AJAX的无刷新上传;   * 可以显示上传进度;   * 良好的浏览器兼容性;   * 兼容其他JavaScript库 (例如:jQuery, Prototype等);   * 支持Flash 8和Flash 9;   SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的在文件上传过程中更新页面内容来营造各种动态效果。   在使用SWFUpload之前,请确认你具备一定的JavaScript和DOM知识。在实际开发中,大部分的错误都是由于错误的设置和低劣的Event Handlers处理程序所造成的。 [编辑本段]文档中文翻译   http://www.v-sky.com/doc/swfupload/v2.1.0/Documentation.html [编辑本段]效果演示   * Classic Form Demo http://demo.swfupload.org/formsdemo ;   * Features Demo http://demo.swfupload.org/featuresdemo ;   * Application Demo http://demo.swfupload.org/applicationdemo ;   * v1.0.2 Plugin Demo http://demo.swfupload.org/v102demo ; [编辑本段]选择合适的Flash控件   在发行包(SWFUpload v2)中含有2个版本的Flash控件(swfupload_f8.swf 与wfupload_f9.swf),其中第一个版本拥有最佳的兼容性,但是为此损失了部分功能;而第二个版本提供了一些附加的功能但是损失了兼容性。 [编辑本段]SWFUpload的初始化与配置   首先,在页面中引用SWFUpload.js ,如      然后,初始化SWFUpload ,如   var swfu;   window.onload = function () {   swfu = new SWFUpload({   upload_url : "http://www.swfupload.org/upload.php",   flash_url : "http://www.swfupload.org/swfupload_f9.swf", file_size_limit : "20480"   });   };   以下是一个标准的SWFUpload初始化设置所需的参数,你可以根据需要自己进行删减:   {   upload_url : "http://www.swfupload.org/upload.php", 处理上传请求的服务器端脚本URL   file_post_name : "Filedata", 是POST过去的$_FILES的数组名   post_params : {   "post_param_name_1" : "post_param_value_1",   "post_param_name_2" : "post_param_value_2",   "post_param_name_n" : "post_param_value_n"   },   file_types : "*.jpg;*.gif", 允许上传的文件类型   file_types_description: "Web Image Files", 文件类型描述   file_size_limit : "1024", 上传文件体积上限,单位MB   file_upload_limit : 10, 限定用户一次性最多上传多少个文件,在上传过程中,该数字会累加,如果设置为“0”,则表示没有限制   file_queue_limit : 2, 上传队列数量限制,该项通常不需设置,会根据file_upload_limit自动赋值   fl

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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