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后就终止整个函数,也就是不会后两行的提交代码,它只是终止了循环,循环外的依然执行,哪位高手帮帮忙,看看该怎么解决,非常感谢了
------解决方案--------------------回调函数里面的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('请填写数字');