<script type="text/javascript">
$(document).ready(function(){
/*这里是一些执行的过程,无错*/
});
function checkInput(obj){
var regx = /^[a-zA-Z]+$/;
if(!regx.test(obj.sendtos.value)){
//如果不匹配则返回false
return false;
}else{
//如果匹配则执行下面ajax
$.ajax({
url: url,
type: 'GET',
data:{sn:obj.sn.value},
dataType: 'html',
async : true,
timeout: 1000,
error: function(){
//如果ajax出错则返回false
return false;
},
success: function(data){
if(data==1) {
//结果为1则返回true
return true;
}else{
//否则返回false
return false;
}
}
});
}
return true
/*问题就出在这里,无论前面的data结果为1或者不为1,那么这里都返回的true*/ }
</script>
解决方案 »
- 网站顶部的浏览记录下拉框是怎么获取用户浏览网站的cookie值的?
- web编程框架
- 如何用链接调用另一个页面上的函数
- 帮忙解决下PHP问题
- 用SAJAX做的留言本在IE下不兼容,急~~~~`
- 大家帮我推荐最漂亮、功能最强的论坛(或社区)
- 申请了虚拟主机(带mysql的),想把自己的数据备份怎么办?
- 我在test111.php中给两个session赋了值,按道理说,应该可以在test222.php中读出来,可是去不行,为什么?谢谢!
- 各位一個關于mail function的問題.在線等候謝謝!
- MFC ODBC问题-------挑战高手,挑战极限!!!
- * 做了几年VC, 想学PHP, 不知道PHP的前景怎么样, 问3个问题*
- 数学ti
//如果ajax出错则返回false
return false;
},
success: function(data){人家都封装好了你还判断啥
if(data==1) {
//结果为1则返回true
return true;
}else{
//否则返回false
return false;
}
}这里的两个 return 仅仅是匿名函数function(data) 的返回
绝对不是checkInput的返回
你还没有理解JS匿名函数、回调函数之类的概念
ajax执行后,通常是异步的,所以不会等待数据返回,就直接往下执行了
学习了,也理解了。
那我把 async 是不是改成false,是不是叫他同步执行。可结果仍然是一样的,因为根据data的值判断的返回只是success后函数本身的返回结果,而不是整个ajax的返回结果。那么现在我如果想根据顶楼的思路作出判断的话?我应该怎么写?
$(document).ready(function(){
/*这里是一些执行的过程,无错*/
});
function checkInput(obj){
var regx = /^[a-zA-Z]+$/;
var result=false; //准备一个变量,用于返回结果.
if(!regx.test(obj.sendtos.value)){
//如果不匹配则返回false
return false;
}else{
//如果匹配则执行下面ajax
$.ajax({
url: url,
type: 'GET',
data:{sn:obj.sn.value},
dataType: 'html',
async : false, // 这里改为同步请求,效果就是执行的时候会卡那么一下.
timeout: 1000,
error: function(){
//如果ajax出错则返回false
result = false; //改为给result赋值.
},
success: function(data){
if(data==1) {
//结果为1则返回true
result = true; //这里改一下.
}else{
//否则返回false
result = false; //还有这里.
}
}
});
}
return result; //返回该结果.
/*问题就出在这里,无论前面的data结果为1或者不为1,那么这里都返回的true*/ }
</script>
因为之前我也这样试过,但怎么也不成功,可是现在思路被你一说,通了之后,改了一下却成功了。谢谢!
可能之前我考虑得某个地方不对吧。。我甚至把整个$.ajax都赋值了,最后$.ajax返回的不是结果,而是一个对象。结贴了,谢谢楼上几位。
然后继续往下执行