以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 为什么弹出对话框一闪即过,无法停留? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129502) |
||||
-- 作者:ycwk -- 发布时间:2018/12/29 18:12:00 -- 为什么弹出对话框一闪即过,无法停留? 下面这段代码,在跳转时新开一个网页 显示exist ,为什么不是弹出对话框? 也不知道哪里有问题 js的附件如下: 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编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/12/30 10:13:00 -- 贴出的代码不完整,无法回答。
请学会自行通过浏览器工具调试,看报什么错 http://www.foxtable.com/mobilehelp/scr/0244.htm
|
||||
-- 作者:ycwk -- 发布时间: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 -- 发布时间: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"; } |
||||
-- 作者:有点蓝 -- 发布时间:2019/1/2 9:18:00 -- pdscan.htm代码不完整,请放到文本文件发上来。 |
||||
-- 作者:ycwk -- 发布时间:2019/1/2 9:31:00 -- 项目如下:
[此贴子已经被作者于2019/1/2 9:31:37编辑过]
|
||||
-- 作者:有点甜 -- 发布时间: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 -- 发布时间: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) |
||||
-- 作者:有点甜 -- 发布时间:2019/1/2 12:32:00 -- 1、返回,控制form是否跳转到新的网页啊;
2、只能像你现在这样写,把值存放在cookie里面。 |