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

雪之涯 2013-05-27 02:12:35
我在做表单验证,循环判断每个文本框里是不是输入的数字,如果有一个不是数字,则不提交表单,我在表单里放了一个<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后就终止整个函数,也就是不会后两行的提交代码,它只是终止了循环,循环外的依然执行,哪位高手帮帮忙,看看该怎么解决,非常感谢了
...全文
10660 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
love北纬45 2014-05-08
  • 打赏
  • 举报
回复
var haoduan =$.trim($('#txtHaoDuan').val()); var allhaoduan = haoduan.split('\n'); var success;//定义检查结果变量 $.each(allhaoduan,function(i,val){//遍历数组 if (val.length != 7) {//判断数据是否合法,不合法设置检查结果为false,合法继续遍历 success = false; return false; } }); if(success == false){//判断结果==false,是:显示错误结果,否:下一个判断 $('#txtHaoDuan').parent().parent().addClass("error"); $('#modifyErrorContent').html('添加号段必须等于7位,如批量添加以回车键换行'); $('#modifyErrorBody').show(); $('#btnSave').removeAttr("disabled"); return; } $('#txtHaoDuan').parent().parent().removeClass("error"); 按照你们说的,我照着做的,希望对其他人有帮助。。。
  • 打赏
  • 举报
回复
相对于
function submitform()
{
      
      var iterator = function(){     
           var textdata=$(this).attr('value');
           if (isNaN(textdata)){
               alert('请填写数字');
               return false;
       };
      for(var i=0; i<$(".datatext1").length; i++) {
          iterator.call($(".datatext1")[i]);
      }
     
    document.getElementById('form1').submit();
        alert('数据提交成功!');
}
当调用完iterator后又会回到for循环
  • 打赏
  • 举报
回复
引用 1 楼 bbjbepzz 的回复:
回调函数里面的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(); } }
说的好
雪之涯 2013-05-27
  • 打赏
  • 举报
回复
非常感谢楼上朋友,这样就是我想要的效果了,万分感激,祝你工作顺利
  • 打赏
  • 举报
回复
看看执行这个了吗?if (isNaN(textdata)){ alert('请填写数字'); return false; // return ; } 把它改成if (true){ alert('请填写数字'); return false; // return ; }试试
Go 旅城通票 2013-05-27
  • 打赏
  • 举报
回复
你的这个是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('数据提交成功!');
}
bbjbepzz 2013-05-27
  • 打赏
  • 举报
回复
回调函数里面的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(); } }

87,921

社区成员

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

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