如我有 <input type="button" value ="查询" onclick="search();"> <script> 
search() 

    var message = getMessage();
    checkForm(); 
    ... 
    ... 
} checkForm() 

   var message="验证通过"
   var status = 0;
   //... 这里执行一段程序
   if(status == 1)
   {
       alert('程序出现错误停止运行')
       //然后让search()的代码也不再执行 
       //那要怎么写呢,谢谢 
   }
   return message;

</script>

解决方案 »

  1.   


    上面的,checkForm() 改为 getMessage();

      

  2.   

    问题一样啊,
    <input type="button" value ="查询" onclick="search();"> <script> 
    search() 

        var message = getMessage();
        if(message=='stop'){return;}
        checkForm(); 
        ... 
        ... 
    } getMessage() 

       var message="验证通过"
       var status = 0;
       //... 这里执行一段程序
       if(status == 1)
       {
           alert('程序出现错误停止运行')
           
           return "stop";
           //然后让search()的代码也不再执行 
           //那要怎么写呢,谢谢 
       }
       return message;
    }
    <script> 
      

  3.   

    阿弥陀佛,lz 中魔了!返回值判断是常用滴程序逻辑处理,但一定中途退出滴话可以用异常机制实现!<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title> new document </title>
      <meta name="generator" content="editplus" />
      <meta name="author" content="" />
      <meta name="keywords" content="" />
      <meta name="description" content="" />
     </head> <body>
      <script type="text/javascript">
      <!--
    var errorNum = 0;function search()
    {
        var message = getMessage(); alert(message);
    }function getMessage()
    {
       var message="验证通过"
       var status = 1;
       //... 这里执行一段程序
       if(status == 1)
       {
           throw new Error(++errorNum, '程序出现错误停止运行');
           //然后让search()的代码也不再执行
           //那要怎么写呢,谢谢
       }
       return message;
    }
    try
    {
    search();
    }
    catch(e){
      document.write(e.number, ": ", e.description, "<br />");
    }document.write("go go go ...");
      //-->
      </script>
     </body>
    </html>
      

  4.   

    如果不想看到异常就用空 catch!L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title> new document </title>
      <meta name="generator" content="editplus" />
      <meta name="author" content="" />
      <meta name="keywords" content="" />
      <meta name="description" content="" />
     </head> <body>
      <script type="text/javascript">
      <!--
    var errorNum = 0;function search()
    {
        var message = getMessage(); document.write("123<br />");
    alert(message);
    }function getMessage()
    {
       var message="验证通过"
       var status = 1;
       //... 这里执行一段程序
       if(status == 1)
       {
       alert("程序出现错误停止运行");
           throw new Error(++errorNum, '程序出现错误停止运行');
       }
       return message;
    }
    try
    {
    search();
    }
    catch(e){
    // Do nothing.
    }document.write("go go go ...");
      //-->
      </script>
     </body>
    </html>
      

  5.   

    RE: if(message=='stop'){return;} 
    就是不想这种方式RE:try catch的
    里面那样写可以,但是还要更改search和在外面添加try catch不要这样我要的就是要是在GetMessage()这个方法中写代码,就可以实现我要的功能的
    没有办法吗?
    谢谢
      

  6.   

    方案1
    <input type="button" value ="查询" onclick="search();">
    <script> 
    function search(){ 
      var message=getMessage();
      if(message=="stop"){ return; }//如果getMessage()返回的是"stop",跳出函数
      
      checkForm(); 
      //... 
      //... 
    } function getMessage(){ 
      var status = 0;
       //... 这里执行一段程序
       if(status==1){
         alert('程序出现错误停止运行')
         return "stop"
       }
       return "验证通过";
    }
    </script>方案2
    <input type="button" value ="查询" onclick="search();">
    <script> 
    function search(){ 
      var status = 0;
       //... 这里执行一段程序
       if(status==1){
         alert('程序出现错误停止运行');  return;
       }
       
       alert("验证通过");
       //继续执行。

    </script>
      

  7.   

    写了四五年代码真没见过 lz 所说滴这种功能。函数要有入口和出口,一般从 funcName() 进入,从 return 退出,
    退出后回到调用函数或窗体,程序执行是堆栈方式执行滴,即先入后出,而且要逐层退出,
    即使是抛出异常,异常检查也是如此,遇到 catch 时才被捕获,处理后程序继续向下执行。lz 希望直接终止调用程序,js 引擎只提供了异常机制可以实现,别无他法,
    除非增加关键字 callerReturn!