点击按钮“保存”,触发下面的函数。为什么我return了,下面的代码仍然执行?具体请看代码及注释:
      text: '保存',
            handler: function(){    //function start
                var m = store.modified.slice(0);
                var jsonArray = [];
                Ext.each(m, function(item) {
                    jsonArray.push(item.data);
                    if(jsonArray.length>1) {
                       Ext.Msg.alert("提示", "请每次修改一行数据");
                       return;       //为什么这里我return了,下面的代码仍然执行呢?
                    }
                });                Ext.lib.Ajax.request(
                    'POST',
                    'http://127.0.0.1:8080/pm1/dept/dept!test.action',
                    {
                    success: function(response){
                        Ext.Msg.alert('信息', response.responseText, function(){
                            store.reload();
                        });
                    },failure: function(){
                        Ext.Msg.alert("错误", "与后台联系的时候出现了问题");
                    }},
                    'data=' + encodeURIComponent(Ext.encode(jsonArray))
                );
            }     //function end
        
   

解决方案 »

  1.   

    return只能终止语句所在函数的执行,改为
    if(jsonArray.length>1) {
             Ext.Msg.alert("提示", "请每次修改一行数据");
             return;       //为什么这里我return了,下面的代码仍然执行呢?
    }
    else {
             Ext.lib.Ajax.request(
    //...
    }
      

  2.   

    可是我已经进入了这个if体内,执行了return,而这个return也是在这个函数体内的。为什么下面的ajax仍然会执行呢?谢谢~
      

  3.   

    因你return出来的是Ext.each(m, function(item) {...不是从handler: function(){    //function start这里退出来