Foxtable(狐表)用户栏目专家坐堂 → 移动开发,多个按键判断输入值是否有效


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

主题:移动开发,多个按键判断输入值是否有效

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


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
移动开发,多个按键判断输入值是否有效  发帖心情 Post By:2017/11/2 21:08:00 [只看该作者]

如下所示代码,有2个或以上按键时,如果判断输入值的是否有效,并进行下一步。(下面的代码,能判断输入值并作出提示,当输入值有效时不能继续下去)

....
If e.PostValues.Count = 0 Then    
    
    Dim dr As DataRow = DataTables("设备点检").SQLFind("[编号]= '"& str2 &"'")   
    If dr IsNot Nothing Then
        
        wb.AddTopTips("","toptip1","未按要求填写数据!")         '用于显示动态错误提示
        
        wb.AddForm("","form1","./bb.htm?tp=" & tp & "&str=" & str)
        
        With wb.AddInputGroup("form1","ipg1","设备名称")
            With .AddTextArea("设备名称",1)
                .Value = dr("设备名称")
                .Readonly = True
            End With
        End With
        
        With wb.AddInputGroup("form1","ipg2","编号")
            With .AddTextArea("编号",1)
                .Value = dr("编号")
                .Readonly = True
            End With
        End With
        
            If tp2 = "ysj"     
                
                With wb.AddInputGroup("form1","ipg10","点检项目(必填)")
                    .AddSelect("txt1","周边环境","|正常|异常")
                End With
                
                With wb.AddButtonGroup("form1","btg1",False)
                    With .Add("btn1","存档1","button")
                        .Kind = 2
                        .Attribute= "o n click='getcheck1()'"    '调用js函数上传
                    End With
                    .Add("btn4", "退出").Attribute = "o n c lick = ""WeixinJSBridge.call('closeWindow')"""          
                End With
                
            ElseIf tp2 = "kt" Then
                
                With wb.AddInputGroup("form1","ipg11","点检项目(必填)")
                    .AddSelect("txt1","机台外观","|正常|异常")
                    .AddSelect("txt2","面板功能","|正常|异常")
                End With
                
                With wb.AddButtonGroup("form1","btg1",False)
                    With .Add("btn1","存档2","button")
                        .Kind = 2
                        .Attribute= "o n click='getcheck2()'" '调用js函数上传
                    End With
                    .Add("btn4", "退出").Attribute = "o n c lick = ""WeixinJSBridge.call('closeWindow')"""          
                End With
            End If
    End If
    
    wb.AppendHTML("<script src='./lib/check.js'></script>")     
    
Else      '保存数据
    
.....

End If
e.WriteString(wb.Build) '生成网页



js代码如下所示:
function getcheck1(){
   var v1 = document.getElementById("txt1").value;
   if (v1){return true}
   show("toptip1",2500);        //2500毫秒=2.5秒
   return false;
}


function getcheck2(){
   var v1 = document.getElementById("txt1").value;
   var v2 = document.getElementById("txt2").value;
   if (v1 && v2){return true}
   show("toptip1",2500);        //2500毫秒=2.5秒
   return false;
}


[此贴子已经被作者于2017/11/2 21:09:24编辑过]

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


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

 没看到你表达的意思,你要做什么功能?浏览器那里报什么错?

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


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/11/3 8:30:00 [只看该作者]

老师,早上好。

...
If e.PostValues.Count = 0 Then    
    
    Dim dr As DataRow = DataTables("设备点检").SQLFind("[编号]= '"& str2 &"'")   
    If dr IsNot Nothing Then
        
        wb.AddTopTips("","toptip1","未按要求填写数据!")         '用于显示动态错误提示
        wb.AddForm("","form1","./bb.htm?tp=" & tp & "&str=" & str)
        ...
            If tp2 = "ysj"     
                With wb.AddInputGroup("form1","ipg10","点检项目(必填)")
                    .AddSelect("txt1","周边环境","|正常|异常")
                End With
                With wb.AddButtonGroup("form1","btg1",False)
                    With .Add("btn1","存档1","button")       --->调用js函数getcheck1,若txt1有值,则允许保存数据。
                        .Kind = 2
                        .Attribute= "o n click='getcheck1()'" 
                    End With
                    .Add("btn4", "退出").Attribute = "o n c lick = ""WeixinJSBridge.call('closeWindow')"""          
                End With
                
            ElseIf tp2 = "kt" Then
                With wb.AddInputGroup("form1","ipg11","点检项目(必填)")
                    .AddSelect("txt1","机台外观","|正常|异常")
                    .AddSelect("txt2","面板功能","|正常|异常")
                End With
                With wb.AddButtonGroup("form1","btg1",False)
                    With .Add("btn1","存档2","button")      --->调用js函数getcheck2,若txt1/txt2有值,则允许保存数据。
                        .Kind = 2
                        .Attribute= "o n click='getcheck2()'"
                    End With
                    .Add("btn4", "退出").Attribute = "o n c lick = ""WeixinJSBridge.call('closeWindow')"""          
                End With
            End If
    End If
    
    wb.AppendHTML("<script src='./lib/check.js'></script>")     
Else 
    
    .....-->进入到这一步,保存传递过来的数据

End If
e.WriteString(wb.Build) '生成网页


如果我根据tp2值拆分多个网页,这样判断1个按键是否有效值,我用下面的代码,一直都可以的:
但如果tp2值多的话,就要重复写很多代码。
...
If e.PostValues.Count = 0 Then     '如果是首次登陆,生成用户留言网页
    
    Dim dr As DataRow = DataTables("设备点检").SQLFind("[编号]= '"& str2 &"'")    '获得点检设备数据
    If dr IsNot Nothing Then
        
        wb.AddTopTips("","toptip1","未按要求填写数据!")         '用于显示动态错误提示
        
        wb.AddForm("","form1","./bb.htm?tp=" & tp & "&str=" & str).Attribute="o n submit = 'return getcheck1()'"       '使用js脚本文件,判断是否按要求输入数据
        
.....
            'If tp2 = "ysj"  
                
                With wb.AddInputGroup("form1","ipg10","点检项目(必填)")
                    .AddSelect("txt1","周边环境","|正常|异常")
                End With
                
                With wb.AddButtonGroup("form1","btg1",False)
                    .Add("btn1", "存档","submit").Kind = 2
                    .Add("btn4", "退出").Attribute = "o n click = ""WeixinJSBridge.call('closeWindow')"""          '退出微信浏览器
                End With
                
            'ElseIf tp2 = "kt" Then
                
                'With wb.AddInputGroup("form1","ipg10","点检项目(必填)")
                   ' .AddSelect("txt1","机台外观","|正常|异常")
                    '.AddSelect("txt2","面板功能","|正常|异常")
                End With
                
                'With wb.AddButtonGroup("form1","btg1",False)
                   ' .Add("btn1", "存档","submit").Kind = 2
                   ' .Add("btn4", "退出").Attribute = "o n click = ""WeixinJSBridge.call('closeWindow')"""          '退出微信浏览器
               ' End With
            
        ' end if
    end if
    
    wb.AppendHTML("<script src='./lib/tl_check.js'></script>")      '引入脚本文件
    
Else      
    
    ...
End If
e.WriteString(wb.Build) '生成网页


[此贴子已经被作者于2017/11/3 8:37:05编辑过]

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


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

你要问的是如何判断值是否为空?

 

 

var v1 = document.getElementById("txt1").value;
var v2 = document.getElementById("txt2").value;
if (v1 != "" && v2 != ""){return true}

 

 

[此贴子已经被作者于2017/11/3 8:49:24编辑过]

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


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/11/3 9:20:00 [只看该作者]

老师,我是要实现这样的功能:根据上面代码的tp2值,会生成不同的页网,会有不同的数量的值要判断

比如 tp2 = "ysj" 时
   With wb.AddInputGroup("form1","ipg10","点检项目(必填)")
                    .AddSelect("txt1","周边环境","|正常|异常")
                End With
要判断txt1是否有效

如果 tp2 = "kt"时
               With wb.AddInputGroup("form1","ipg10","点检项目(必填)")
                   '.AddSelect("txt1","机台外观","|正常|异常")
                    .AddSelect("txt2","面板功能","|正常|异常")
                End With
要判断txt1/txt是否有效

又比如tp2=***时
        With wb.AddInputGroup("form1","ipg10","点检项目(必填)")
                    .AddSelect("txt1","周边环境","|正常|异常")
                  .AddSelect("txt2","周边环境","|正常|异常")
                 .AddSelect("txt3","周边环境","|正常|异常")
              End With
我可能只需要txt3一定有值,但txt1/txt2如果有值,就不能超过4个字符。。

等等。
[此贴子已经被作者于2017/11/3 9:20:07编辑过]

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


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

 既然是不同的页面,不同的判断,那就分开来比较,就好像你上面那样写多个函数分别判断。

 

 你现在哪里无法实现?想怎样做?


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


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/11/3 10:01:00 [只看该作者]

...
If e.PostValues.Count = 0 Then    
    
    Dim dr As DataRow = DataTables("设备点检").SQLFind("[编号]= '"& str2 &"'")   
    If dr IsNot Nothing Then
        
        wb.AddTopTips("","toptip1","未按要求填写数据!")         '用于显示动态错误提示
        wb.AddForm("","form1","./bb.htm?tp=" & tp & "&str=" & str)
        ...
            If tp2 = "ysj"     
                With wb.AddInputGroup("form1","ipg10","点检项目")
                    .AddSelect("txt1","周边环境","|正常|异常")      '必填
                End With
                With wb.AddButtonGroup("form1","btg1",False)
                    With .Add("btn1","存档1","button")       
                        .Kind = 2
                        .Attribute= "o n click='return getcheck1()'"       --->调用js函数getcheck1,能判断输入值是否有效,但当输入有效时,不能跳转下页
                    End With
                End With
                
            ElseIf tp2 = "kt" Then
                With wb.AddInputGroup("form1","ipg11","点检项目")
                    .AddSelect("txt1","机台外观","|正常|异常")    '选项,小于3字符
                    .AddSelect("txt2","面板功能","|正常|异常")    '必填
                End With
                With wb.AddButtonGroup("form1","btg1",False)
                    With .Add("btn1","存档2","button")     
                        .Kind = 2
                        .Attribute= "o n click='return getcheck2()'"       --->调用js函数getcheck2,能判断输入值是否有效,但当输入有效时,不能跳转下页
                    End With
                End With
            End If
    End If
    wb.AppendHTML("<script src='./lib/check.js'></script>")     
Else 
    ...
End If
e.WriteString(wb.Build) '生成网页



js代码如下所示:
function getcheck1(){
   var v1 = document.getElementById("txt1").value;
   if (v1){return true}
   show("toptip1",2500);        //2500毫秒=2.5秒
   return false;
}


function getcheck2(){
   var v1 = document.getElementById("txt1").value;
   var v2 = document.getElementById("txt2").value;
   if (v1.length < 3 && v2){return true}
   show("toptip1",2500);        //2500毫秒=2.5秒
   return false;
}
[此贴子已经被作者于2017/11/3 10:48:11编辑过]

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


加好友 发短信
等级:二尾狐 帖子:526 积分:5083 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/11/3 10:54:00 [只看该作者]

老师,提交按钮改成这样,测试可以提交数据了。。我先这样用,有问题再请教。。。

                With wb.AddButtonGroup("form1","btg1",False)
                    With .Add("btn1","存檔2","submit")
                        .Kind = 2
                        .Attribute= "o n c lick='return getcheck1()'" '调用js函数上传
                    End With
[此贴子已经被作者于2017/11/3 10:54:54编辑过]

 回到顶部