读书人

js return false 为何不能终止程序 而

发布时间: 2013-06-26 14:29:32 作者: rapoo

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('数据提交成功!');
}

读书人网 >JavaScript

热点推荐