首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js return false 为何不能终止程序 而是跳出了循环

2013-06-26 
js return false 为什么不能终止程序 而是跳出了循环我在做表单验证,循环判断每个文本框里是不是输入的数

js return false 为什么不能终止程序 而是跳出了循环
我在做表单验证,循环判断每个文本框里是不是输入的数字,如果有一个不是数字,则不提交表单,我在表单里放了一个<img >它的onclick事件是提交表单,代码如下:

function submitform()
{
     var datas=$(".datatext1")
       $.each(datas, function(){     
       var textdata=$(this).attr('value');
       if (isNaN(textdata)){
       alert('请填写数字');
       return false;
       //return ;
       }
      }); 
    
document.getElementById('form1').submit();
        alert('数据提交成功!');
}

为什么结果不是我想想的return false后就终止整个函数,也就是不会后两行的提交代码,它只是终止了循环,循环外的依然执行,哪位高手帮帮忙,看看该怎么解决,非常感谢了 JavaScript return?false?submit? 终止程序 表单验证
[解决办法]
回调函数里面的return跟submitform方法没有什么关系

function submitform(){
     var datas=$(".datatext1") , flag = true;
       $.each(datas, function(){     
           var textdata=$(this).attr('value');
           if (isNaN(textdata)){
               alert('请填写数字');
               flag = false;
               return false;
           //    return ;
       }
      }); 
     if(flag){
    document.getElementById('form1').submit(); 
     }
    
}

[解决办法]
你的这个是jq each执行的匿名函数的返回值,并不是submitform()的返回值

改成下面的
function submitform()
{
     var datas=$(".datatext1")
var r=true;////////////
       $.each(datas, function(){     
           var textdata=$(this).attr('value');
           if (isNaN(textdata)){
r=false;///////////
               alert('请填写数字');
               return false;


           //    return ;
       }
      }); 
     if(!r)return false;///////////////
    document.getElementById('form1').submit();
        alert('数据提交成功!');
}

热点排行