以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  js终止执行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185453)

--  作者:ycs5801
--  发布时间:2023/2/23 20:25:00
--  js终止执行
function hqcd(bz) { //此函数为点餐,预约点餐,bz为传送过来的变量
hide(\'page1\');
show(\'page2\');

    rqbz=bz //将传送过来的日期标志传送给外部变量rqbz,日期标志
console.log(rqbz);
var openid = document.getElementById("openid");
var psdz = document.getElementById("配送地址");
var sj = document.getElementById("手机");
var xm = document.getElementById("姓名");
var date = new Date(); // 获取当前时间
var hour = date.getHours(); // 得到小时

if (rqbz==\'dr\'){   //判断中的等于号要用双等于号
if(hour>=16) {
alert(\'今日点餐已结束,谢谢!\');
            return;
        }
            else{
var rq = document.getElementById("dtrq");
                }
       }      
else {
if(hour>=20) {
alert(\'明日点餐已结束,谢谢!\');
            return;
        }
            else{
var rq = document.getElementById("mrrq");
}
         }

var obj = new Object();
var result = sendAjaxJSON(obj, "tongji.htm", "", false);
document.getElementById("page2").innerHTML = result;
sz();

上述js代码点击后显示“今日点餐已结束”,然后页面会变成空白,怎么回事?

--  作者:有点蓝
--  发布时间:2023/2/23 20:29:00
--  
函数在哪调用的?
--  作者:ycs5801
--  发布时间:2023/2/23 20:30:00
--  
With wb.AddGrid("form1", "page1g1")
            
            
            .Add("dc", "今日点餐", "./images/add.png").Attribute = "onc lick=\'hqcd(""dr"")\'"
            .Add("mr", "明日订餐", "./images/add.png").Attribute = "on click=\'hqcd(""mr"")\'"
            
            .Add("cx1", "查询", "./images/cx.png").Attribute = "onc lick=""qdcx()"""
            
           
            
        End With
[此贴子已经被作者于2023/2/23 20:30:26编辑过]

--  作者:有点蓝
--  发布时间:2023/2/23 20:43:00
--  
看不出什么。请提供实例测试
--  作者:ycs5801
--  发布时间:2023/2/23 20:49:00
--  好的

以下内容是专门发给有点蓝浏览



--  作者:有点蓝
--  发布时间:2023/2/23 21:12:00
--  
学会使用浏览器开发者工具调试咯

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

在大括号里定义的变量只能在大括号里使用,外部是不存在这个变量的,所以出错,下面的代码无法执行,导致page2没有内容


--  作者:ycs5801
--  发布时间:2023/2/23 21:57:00
--  
我现在设定的是当前时间已经大于16点或者20点,正常来说应该直接提示点餐结束了,那么用return终止语句,终止后程序还会继续往下执行吗?我是想让它return之后,直接就终止所有语句,可以吗?
--  作者:有点蓝
--  发布时间:2023/2/23 22:06:00
--  
那就把显示page2的代码放到后面啊,返回了就没有必要切换到page2了。

再说了如果不返回6楼的问题依然存在

--  作者:ycs5801
--  发布时间:2023/2/23 22:56:00
--  
if(hour>=20) {
alert(\'明日点餐已结束,谢谢!\');
window.location.href=\'http://lsyg.20700.xyz\';
            return;
        }

这样可以吗?直接跳转到主页

--  作者:有点蓝
--  发布时间:2023/2/23 23:27:00
--  
测试咯。测试有什么问题?