Foxtable(狐表)用户栏目专家坐堂 → 为什么弹出对话框一闪即过,无法停留?


  共有3057人关注过本帖树形打印复制链接

主题:为什么弹出对话框一闪即过,无法停留?

帅哥哟,离线,有人找我吗?
ycwk
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
为什么弹出对话框一闪即过,无法停留?  发帖心情 Post By:2018/12/29 18:12:00 [只看该作者]

下面这段代码,在跳转时新开一个网页 显示exist ,为什么不是弹出对话框? 也不知道哪里有问题       

js的附件如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:pdscan.rar



Dim e As RequestEventArgs = args(0)
Dim wb As New weui

     wb.Title="盘点"
     wb.InsertHTML("<div data-theme='g' data-role='page' data-position='fixed'>")      '页内容样式     不能加</div>  加在好几个地方都不能正常显示页头页脚
        'wb.InsertHTML("<h3 align='center' style='margin-top:5px'>东软服务满意度调查</h3>")      '插入表头
If e.PostValues.Count = 0 Then '生成增加盘点网页
   
 '    msgbox("进了if")
   ' wb.AddForm("","form1","SatisSurvey.htm").Attribute=""              '不能改成onclick 不然就会点一个选择弹一次提示
     wb.AddForm("","form1","pdScan.htm").Attribute=""       'pdscan.htm也是接收结果的页面,也写在这个函数里面          '不能改成onclick 不然就会点一个选择弹一次提示
 ' wb.InsertHTML("form1","<fieldset data-role='controlgroup' data-Type='horizontal'>")     '起效果了


   With wb.AddInputGroup("form1","ipg1","设备资料")
        .AddInput("AssetNumber","资产编号","Text") '前一个"AssetNumber"是ID,后一个"资产编号"是标题
   End With


   With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1", "确定", "submit")              '.Attribute=""      '.Attribute =""
      '   .Add("btn1", "确定", "submit")            '.Attribute=""
   End With



   '增加提交成功按钮
    With wb.AddDialog("","dlg3", "","")     '增加订单成功提示框,这里一定要有,不然javascript就调不出来  dlg4要与javascript中对应,后面两个"" ""内容 实际是javascript中决定的      weui框架弹出的
         '   .AddButton("btnYes","是").Attribute = ""
            .AddButton("btnNo","确定","./CheckPd.htm").Kind = 1
    End With



  '盘点失败时被javascript调用的提示框
    With wb.AddDialog("","dlg4", "","")       '弹出增加盘点失败提示框(表示在盘点表里已存在该记录,即不需要再盘点)  ,这里一定要有,不然javascript就调不出来  dlg4要与javascript中对应,后面两个"" ""内容 实际是javascript中决定的      weui框架弹出的
            .AddButton("btnOK","确定")                            '.Attribute = ""
    End With

   

   wb.AppendHTML("<div id='p1' style='margin:0.5em'></div>")     '插入一个div    p1 ,用于显示服务器返回的数据
   'wb.AppendHTML("<script src='../ajax/libs/pdScan.js'></script>")   '引入脚本文件               '如果什么都和这个函数一样,仍然弹不出来框,说明微信调用  htm网页的路径不对.  看看httprequest 前面有没有xdf/service文件夹.这个决定了肶不能调用到javascript
   
   wb.AppendHTML("<script src='./ajax/libs/pdScan.js'></script>")   '引入脚本文件               
   'msgbox(ProjectPath)
   e.WriteString(wb.Build)

'wb.AppendHTML("<div data-theme='g' data-role='page' data-position='fixed'>")      '页内容
'wb.InsertHTML("</div>")
   ' e.WriteString("ok")
Else
                  
                Dim str1 As String =  e.PostValues("AssetNumber") 
       ' msgbox(e.PostValues("AssetNumber"))
                 'Dim str4 As String = "http://10.26.254.23:8080/Identity.asmx/SalaryQuery?xml=<XML><acct_year>" & str1 & "</acct_year><acct_month>" & str2 & "</acct_month><emp_code>" & str3 & "</emp_code></XML>" 
                Dim dr As DataRow= DataTables("盘点记录").SQLFind("资产编号 = '" & e.PostValues("AssetNumber") &  "'")             
 
                If dr IsNot Nothing Then   '如果找到该记录的话                
                     e.WriteString("exist") 
                     Return "exist"    'return后面的值无所谓,只是后面必须要带个参数

             
                End If 

             ' e.WriteString("ok")   
                     
End If
[此贴子已经被作者于2018/12/31 21:01:13编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/30 10:13:00 [只看该作者]

 贴出的代码不完整,无法回答。

 

 请学会自行通过浏览器工具调试,看报什么错 http://www.foxtable.com/mobilehelp/scr/0244.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/12/31 20:53:00 [只看该作者]

我把代码改了一下,现在可以弹出了,但是dlg4一闪即过,会再打开一个新网页显示 exist ,请问这是怎么回事?  在浏览器里试了,也是一闪而过

Dim e As RequestEventArgs = args(0)
Dim wb As New weui
     wb.Title="请扫描资产标签上的二维码"
     wb.InsertHTML("<div data-theme='g' data-role='page' data-position='fixed'>")      '页内容样式     不能加</div>  加在好几个地方都不能正常显示页头页脚

If e.PostValues.Count = 0 Then    '生成增加盘点网页
   
   ' wb.AddForm("","form1","CheckPd.htm").Attribute=""       'checkpd.htm 是接收结果的页面
     wb.AddForm("","form1","pdscan.htm")  ' .Attribute=""        ' 仍然由本页接收提交的数据


   With wb.AddInputGroup("form1","ipg1","设备资料")
        .AddInput("AssetNumber","资产编号","Text") '前一个"AssetNumber"是ID,后一个"资产编号"是标题
   End With


   With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1","确定","submit").Attribute=""      '.Attribute =""
   End With



'存在重复盘点记录时,给出是否重新盘点的提示.
    With wb.AddDialog("","dlg4", "重新盘点确认","您确定要对当前设备重新盘点吗?")
            .AddButton("btnCancel","取消").Kind = 1
            .AddButton("btnOK","确定","./CheckPd.htm?AssetNumber=" & e.PostValues("AssetNumber") )
    End With


 
   wb.AppendHTML("<script src='./ajax/libs/pdScan.js'></script>")   '引入脚本文件               
   e.WriteString(wb.Build)


Else 
          Dim dr As DataRow= DataTables("盘点记录").SQLFind("资产编号 = '" & e.PostValues("AssetNumber") &  "'")             
          If dr IsNot Nothing Then   '如果存在重复盘点记录的话    
               e.WriteString("exist") 
                     'Return "1"
          Else      '如果不存在重复记录的话            
                    ' wb.InsertHTML("<meta http-equiv='Refresh' c>")    '没有找到该记录则直接跳转到显示结果的页面                 
               e.WriteString("<meta http-equiv='refresh' c>" )                 
          End If   


End If


pdscan.js 代码如下:

//发送JSON对象
function pdScanFunction()
{
    var result = submitAjaxForm('form1','',false);        //false  表示同步执行
//如果正确跳出验证对话框,确定后转目标网页     如果不正确,则跳出对话框停留在该页。 
     if (result =='exist')    //查到重复盘点记录
        {
        showDialog('dlg4','错误',result); 
       // show('dlg4')
         return exist;
        }
     else    //可以正常记录盘点结果
        {
        // showDialog('dlg3'); 
        // document.getElementById("p1").innerHTML=result;     //在P1位置显示各字段内容
        // return false;
        }

}




[此贴子已经被作者于2018/12/31 20:53:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2019/1/1 9:42:00 [只看该作者]

流程是这样的
在当前页面里,提交时检查当前输入的AssetNumber 是否在盘点表里有重复值,有则通过ajax返回exist,则前台弹出选择对话框,是否重复盘点?  如果点是,则用get方式把AssetNumber值带入到下一个确认结果的页面,则现的苦恼是在ajax弹出对话框后,如何获取AssetNumber的值? e.getvalues("AssetNumber") 和e.postvalues("AssetNumber") 值都为nothing ,我觉得用cookie 也不合适,有其它办法吗?

pdscan.htm代码如下:

Dim e As RequestEventArgs = args(0)
Dim wb As New weui

   

     wb.AddForm("","form1","CheckPd.htm")  ' .Attribute=""        ' 由CheckPd接收提交的数据


   With wb.AddInputGroup("form1","ipg1","设备资料")
        .AddInput("AssetNumber","资产编号","Text")       '前一个"AssetNumber"是ID,后一个"资产编号"是标题
   End With


   With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1","确定","button").Attribute=""         'button千万不能写成submit,否则就会造成数据提交两遍
   End With


'存在重复盘点记录时,给出是否重新盘点的提示.
    With wb.AddDialog("","dlg4", "重新盘点确认","您确定要对当前设备重新盘点吗?")
            .AddButton("btnCancel","取消").Kind = 1
            .AddButton("btnOK","确定","./CheckPd.htm?AssetNumber=" & e.GetValues("AssetNumber") )
    End With

 
    wb.AppendHTML("<script src='./ajax/libs/pdScan.js'></script>")   '引入脚本文件               
    e.WriteString(wb.Build)



CheckPD.htm代码如下:
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
'wb.InsertHTML("<div data-theme='g' data-role='page' data-position='fixed'>")      '页内容样式 
 wb.AppendHTML("<script src='./ajax/libs/pdResult.js'></script>")   '引入脚本文件        

msgbox(e.PostValues("AssetNumber"))
msgbox(e.GetValues("AssetNumber"))

If e.PostValues.ContainsKey("AssetNumber") Then
       Dim dr As DataRow= DataTables("盘点记录").SQLFind("资产编号 = '" & e.PostValues("AssetNumber") &  "'")             
       If dr IsNot Nothing Then   '如果存在重复盘点记录的话    
'msgbox(e.PostValues("AssetNumber"))
            e.WriteString("exist") 
       Else      '如果不存在重复记录的话,则直接把 AssetNumber带着跳转到  CheckPd 页面          
                 ' wb.InsertHTML("<meta http-equiv='Refresh' c>")    '没有找到该记录则直接跳转到显示结果的页面                 
            e.WriteString("<meta http-equiv='refresh' c>" )                 
       End If

End If


If e.GetValues.ContainsKey("AssetNumber") Then
 ' msgbox(e.GetValues("AssetNumber"))
                Dim dr1 As DataRow= DataTables("资产管理表").SQLFind("IP地址 = '" & e.GetValues("AssetNumber") &  "'")    
                If dr1 IsNot Nothing Then    '如果资产管理表中有此资产编号对应的资料               
                    
                      wb.AddForm("","form1","PdResult.htm")
                      With wb.AddInputGroup("form1","ipg1","请核对资料")
                        .AddInput("zcmc","资产名称","text").Value=dr1("资产名称")
                        .AddInput("zcgs","资产归属","text").Value=dr1("资产归属")
                        .AddInput("cgxm","采购项目","text").Value=dr1("采购项目")
                       ' .AddInput("pw","密码","password")
                      End With


                      With wb.AddButtonGroup("","btg1", False)    '水平排列的两个按钮  分组号为btg2
                           .Add("btnOK","显示正确").Attribute = ""
                           .Add("btnWrong","显示错误").Attribute = ""
 
                      End With
                        e.WriteString(wb.Build)

                 Else 
                        e.WriteString("不存在数据!")
                 End If


End If


pdscan.js 代码如下:

//发送JSON对象
function pdScanFunction()
{
    var result = submitAjaxForm('form1','',false);        //false  表示同步执行
//如果正确跳出验证对话框,确定后转目标网页     如果不正确,则跳出对话框停留在该页。 
     if (result =='exist')    //查到重复盘点记录
        {
        showDialog('dlg4','错误',result); 
       // show('dlg4')
       //  return exist;
        }
     else    //可以正常记录盘点结果
        {
        // showDialog('dlg3'); 
        // document.getElementById("p1").innerHTML=result;     //在P1位置显示各字段内容
        // return false;
        }

}


pdResult.js代码如下:

function right(){
   location="pdResult.htm?pdResult=" + "right"; 
}

function wrong(){
   location="pdResult.htm?pdResult=" + "wrong"; 
}


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110743 积分:563641 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/2 9:18:00 [只看该作者]

pdscan.htm代码不完整,请放到文本文件发上来。

 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2019/1/2 9:31:00 [只看该作者]

项目如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:ydpd3.rar
[此贴子已经被作者于2019/1/2 9:31:37编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/2 10:06:00 [只看该作者]

js改成

 

function pdScanFunction()
{
    var result = submitAjaxForm('form1','',false);        //false  表示同步执行
//如果正确跳出验证对话框,确定后转目标网页     如果不正确,则跳出对话框停留在该页。 
     if (result =='exist')    //查到重复盘点记录
        {
        showDialog('dlg4','错误',result); 
       // show('dlg4')
         return false;
        }
     else    //可以正常记录盘点结果
        {
        // showDialog('dlg3'); 
        // document.getElementById("p1").innerHTML=result;     //在P1位置显示各字段内容
        return true;
     }
}

 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8561 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2019/1/2 10:29:00 [只看该作者]

问题一:
return false  return true  是什么意思呢?

问题二:  下面这段代码,如果想优化成,在检查到不存在重复盘点情况下,直接以Get方式把 AssetNumber值带到下一个页面 CheckPD.htm , 要怎么改?   现在这种写法上面这种情况下,点击按钮不会有任何反应。

Dim e As RequestEventArgs = args(0)
Dim wb As New weui

   
     wb.AddForm("","form1","CheckPd.htm")  ' .Attribute=""        ' 由CheckPd接收提交的数据


   With wb.AddInputGroup("form1","ipg1","设备资料")
        .AddInput("AssetNumber","资产编号","Text")       '前一个"AssetNumber"是ID,后一个"资产编号"是标题
   End With


   With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1","确定","button").Attribute=""         'button千万不能写成submit,否则就会造成数据提交两遍
   End With


'存在重复盘点记录时,给出是否重新盘点的提示.
    With wb.AddDialog("","dlg4", "重新盘点确认","您确定要对当前设备重新盘点吗?")
            .AddButton("btnCancel","取消").Kind = 1
            .AddButton("btnOK","继续","./CheckPd.htm?AssetNumber=" & e.Cookies("AssetNumber") )
    End With

 
    wb.AppendHTML("<script src='./ajax/libs/pdScan.js'></script>")   '引入脚本文件               
    e.WriteString(wb.Build)

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/2 12:32:00 [只看该作者]

1、返回,控制form是否跳转到新的网页啊;

 

2、只能像你现在这样写,把值存放在cookie里面。


 回到顶部