以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  移动开发数据重复提交问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=118801)

--  作者:xietan417
--  发布时间:2018/5/11 11:46:00
--  移动开发数据重复提交问题
在移动开发中,提交数据时,多次点确定键数据就会多次重复提交,如何能防止这样的问题吗?


Dim e As RequestEventArgs = args(0)
Dim wb As New weui
Dim userid = Functions.Execute("order",e)
Dim dr1 As DataRow
dr1 = DataTables("ZlEmployee").SQLFind("G_wxh = \'" & userid &"\'")

\'开始正常生成网页内容
If e.PostValues.Count = 0 And dr1 IsNot Nothing  Then
    wb.AddForm("","form1","itservice.htm")
    With wb.AddInputGroup("form1","ipg1","IT报障")
        With .AddInput("name","姓名","text")
            .Value = dr1("Name")
            .Readonly= True
        End With     
        With .AddInput("报障部门","报障部门","text")
            .Value = dr1("Dept")
            .Readonly= True
        End With
        .AddInput("报障日期","报障日期","datetime-local").Value = Format(Date.Now,"yyyy-MM-ddTHH:mm")
        .AddSelect("故障类型","故障类型","电脑硬件|软件应用|网络相关|打印设备|其它")
    End With
    With wb.AddInputGroup("form1","ipg2","备注")
        .AddTextArea("bz",5).Placeholder = "请输入50字以内的备注"
    End With
    With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1", "确定", "submit")
    End With
    e.WriteString(wb.Build)
Else
    Dim nms() As String = {"name","报障部门","报障日期","故障类型","bz"} \'不能为空的列名数组
    For Each nm As String In nms
        If e.PostValues.ContainsKey(nm) = False Then \'生成错误提示页
            With wb.AddMsgPage("","msgpage","增加失败", nm & "行不能为空!")
                .icon = "Warn" \'改变图标
                .AddButton("btn1","返回").Attribute = ""
            End With
            e.WriteString(wb.Build)
            Return "" \'必须返回
        End If
    Next
    nms = New String() {"name","报障部门","报障日期","故障类型","bz"}  \'重新定义了nms数组,增加了两列.
    Dim dr As DataRow = DataTables("IT处理记录").AddNew()
    For Each nm As String In nms
        If e.PostValues.ContainsKey(nm) Then
            dr(nm) = e.PostValues(nm)
        End If
    Next
    dr.save()
    With wb.AddMsgPage("","msgpage","提交成功", "IT电话:81210043") \'生成成功提示页
               .AddButton("btn1","返回列表","itrecord.htm?page=0") 
    End With
    e.WriteString(wb.Build)
End If

--  作者:有点甜
--  发布时间:2018/5/11 11:58:00
--  

.Add("btn1", "确定", "submit")

 

改成

 

.Add("btn1", "确定", "button").attribute="onclick=""this.disabled=true;this.value=\'请稍后\';form1.submit()"""

[此贴子已经被作者于2018/5/11 11:58:13编辑过]

--  作者:xietan417
--  发布时间:2018/5/11 12:33:00
--  
谢谢甜版
--  作者:ouyangfenghuan
--  发布时间:2019/9/17 16:43:00
--  
以下内容为程序代码:

          With wb.AddButtonGroup("form1","btg1",True)
            With .Add("btn1", "确定提交", "button")
                .Kind =  0
                .Attribute= "on click=\'su bmitForm()\'"  \'调用js函数上传
                .Attribute="on click=""this.disabled=true;this.value=\'请稍后\';form1.su bmit()"""
            End With
当有调用js函数时要怎么改动呢?

[此贴子已经被作者于2019/9/17 16:46:23编辑过]

--  作者:有点蓝
--  发布时间:2019/9/17 17:09:00
--  
With wb.AddButtonGroup("form1","btg1",True)
    With .Add("btn1", "确定提交", "button")
        .Kind =  0
        .Attribute="on click=""this.disabled=true;this.value=\'请稍后\';su bmitForm()"""
    End With
    

--  作者:ouyangfenghuan
--  发布时间:2019/9/17 18:10:00
--  
还是不行,会不会是我用了增强Uploader传递图片?


--  作者:ouyangfenghuan
--  发布时间:2019/9/17 18:29:00
--  
能不能像银行提交页面样 先跳到一个等待验证的页面,再根据提交结果反馈对应的页面
--  作者:ouyangfenghuan
--  发布时间:2019/9/17 18:33:00
--  
具体是要再js文件里面写代码么?
function submitForm(){
   document.getElementById("btn1").disabled=true;
   setTimeout("document.getElementById(\'btn1\').disabled=false;",3000 );
    if(validit()) {
location= "dyz.htm"  //待验证页面写在这里么
        show("tst1",2000);
        var result = submitAjaxForm(\'form1\',\'afterSubmit\',true,\'tst1\');
    }
}

function afterSubmit(result){
    hide("tst1");
    if (result==\'OK\') {
        show("tst2",2000);
location= "xscg.htm" 
    }
    else{
        show("txt3",2000);
    }
}

--  作者:ouyangfenghuan
--  发布时间:2019/9/17 18:38:00
--  
进入待验证页面后如何根据反馈结果自己跳转页面图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2019/9/17 20:22:00
--  
验证用法参考:http://www.foxtable.com/mobilehelp/topics/0104.htm

location= "xscg.htm" 就是跳转页面的用法