Foxtable(狐表)用户栏目专家坐堂 → 代码合并问题


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

主题:代码合并问题

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
代码合并问题  发帖心情 Post By:2017/4/2 16:05:00 [只看该作者]

function submitForm(){
    show("tst1",2000);
    var result = submitAjaxForm('form1','afterSubmit');
}

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

将下面这段代码合并到上面代码里,
上面代码是:移动文档“增Uploader
下面代码是:能够成功执行toptip提示

我自己弄了下,问题用粉色写在2~4楼,代码合并写在2楼,页面代码写在3楼
function validit_images(){
var v1 = document.getElementById("up1").files.length;
var v2 = document.getElementById("up4").files.length;

if(v1 < 1){
    showTopTips("toptip1","请选择1张展示照上传",2000);
    return false;
}
if(v2 < 4){
    showTopTips("toptip1","请选择4张以上生活照上传",2000);
    return false;
}
return true;
}
[此贴子已经被作者于2017/4/2 18:36:36编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/4/2 17:42:00 [只看该作者]

我是这样合并的,当没有选择图片时,点击页面上传,toptip没有显示,直接跳转到success.htm,提示

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2017.3.18.1
错误所在事件:自定义函数valid_images
详细错误信息:
调用的目标发生了异常。
索引超出了数组界限。

js合并如下:
function submitForm(){
    show("tst1",2000);
    var result1 = submitAjaxForm('form1','validit_images');
    var result2 = submitAjaxForm('form1','afterSubmit');
}

function afterSubmit(result2){
    hide("tst1");
    if (result2=='OK') {
        show("tst2");
        location="upload.htm";
    }
    else{
        show("tst3",2000);
    }
}

function validit_images(){
    var v1 = document.getElementById("up1").files.length;
    var v2 = document.getElementById("up4").files.length;

    if(v1 < 1){
      showTopTips("toptip1","请选择1张展示照上传",2000);
      return false;
    }
    if(v2 < 4){
      showTopTips("toptip1","请选择4张以上生活照上传",2000);
      return false;
    }
    return true;
}

页面代码在3楼
[此贴子已经被作者于2017/4/2 17:59:32编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/4/2 17:44:00 [只看该作者]

这是内部函数images代码:
Dim e As RequestEventArgs = args(0)                            '注册第7页,上传照片
Select Case e.Path
    Case "images.htm"
        Dim wb As New weui
        If e.PostValues.Count = 0 Then
            wb.AddTopTips("","toptip1","") '用于显示动态错误提示
            wb.AddPageTitle("","pageheader","***","******")
            wb.AddForm("","form1","valid_images.htm").Attri-bute="on-submit='re-turn validit_images()'"
            With wb.AddInputGroup("form1","ipg1","展示照(选择1张靓照即可)") '文件上传(1个)
                With .AddUploader("up1","",False)
                    .AllowDelete = True '允许删除
                    .Incremental = True '允许 重复选择文件或连续拍照
             .ScaleWidth = 400 '自动压缩图片宽度为400个像素,高度等比例压缩
                End With
            End With
            With wb.AddInputGroup("form1","ipg22","生活照(选择4张以上靓照)") '带图片浏览的文件上传(最少4个)
                With .AddUploader("up4","",True) 'True表示允许一次上传多个文件
                    .AllowDelete = True '允许删除
                    .Incremental = True '允许 重复选择文件或连续拍照
             .ScaleWidth = 400 '自动压缩图片宽度为400个像素,高度等比例压缩
                End With
            End With
            With wb.AddButtonGroup("form1","btg1",True)
                .Add("btn1", "提交", "submit")
            End With
            wb.AddToast("","tst1", "正在上传",1)
            wb.AddToast("","tst2", "上传成功",0)
            wb.AddToast("","tst3", "上传失败",0).Icon= "warn"
            wb.AppendHTML("<script src='./lib/ajaxform_images.js'></script>") '引入脚本文件
            e.WriteString(wb.Build) '生成网页
        End If
End Select

这是内部函数valid_images代码:
Dim e As RequestEventArgs = args(0)                             '验证页面(照片)
Select Case e.Path
    Case "valid_images.htm"
        Dim wb As New weui
        Dim drbianh As String = e.Cookies("drbianhao") '为cookie传递数据
        Dim NewName As String
        'msgbox(drbianh)
        Dim dr As DataRow = DataTables("会员资料").sqlFind("会员编号 = '" & drbianh & "'")
        If dr IsNot Nothing Then                           '测试代码:msgbox(e.PostValues("isr"))
            For Each key As String In e.Files.Keys
                If key = "up1" Then
                    For Each fln As String In e.Files(key)
                        'msgbox(0)
                        Dim ext As String = fln.Split(".")(1)
                        'NewName = Format(Date.Now, "yyyyMMddHHmmssffffff") & "." & ext
                        NewName = Format(Date.Now, "yyyyMMddHHmmssffffff") & Rand.Next(10000) & "." & ext
                        e.SaveFile(key, fln, ProjectPath & "Attachments\" & NewName)
                        'dr("展示照") = iif(dr.IsNull("展示照"), "", vbcrlf) & NewName
                        dr("展示照") &= iif(dr.IsNull("展示照"), "", vbcrlf) & NewName
                    Next
                End If
            Next
            For Each key1 As String In e.Files.Keys
                If key1 = "up4" Then
                    For Each fln1 As String In e.Files(key1)
                        'msgbox(1)
                        Dim ext1 As String = fln1.Split(".")(1)
                        'NewName  = Format(Date.Now, "yyyyMMddHHmmssffffff") & "." & ext1
                        NewName = Format(Date.Now, "yyyyMMddHHmmssffffff") & Rand.Next(10000) & "." & ext1
                        e.SaveFile(key1, fln1, ProjectPath & "Attachments\" & NewName)
                        'dr("生活照") = iif(dr.IsNull("生活照"), "", vbcrlf) & NewName
                        dr("生活照") &= iif(dr.IsNull("生活照"), "", vbcrlf) & NewName
                    Next
                End If
            Next
            dr.save()              '保存
        End If
        wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面:/success.htm
        e.WriteString(wb.Build) '生成网页
End Select
[此贴子已经被作者于2017/4/2 20:55:24编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/4/2 18:10:00 [只看该作者]

另外,在有照片上传时,Attachments内,有每张照片都有2张
[此贴子已经被作者于2017/4/2 18:37:05编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/2 19:27:00 [只看该作者]

1、不要提交两次

 

var result1 = submitAjaxForm('form1','validit_images');

var result2 = submitAjaxForm('form1','afterSubmit');
 
如果要调用函数,直接写 validit_images();
 
2、看1、先执行js验证,再提交
 
If(validit_images()) {
    var result2 = submitAjaxForm('form1','afterSubmit');
}

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/4/2 20:55:00 [只看该作者]

3楼内部函数images代码,增加3楼粉色部分,不能正确执行(选与不选照片,均提示:请选择1张展示照上传),问3楼代码如何修改,才能正确提示下述代码的toptip?

js代码如下:
function validit_images(){
var v1 = document.getElementById("up1").files.length;
var v2 = document.getElementById("up4").files.length;

if(v1 < 1){
    showTopTips("toptip1","请选择1张展示照上传",2000);
    return false;
}
if(v2 < 4){
    showTopTips("toptip1","请选择4张以上生活照上传",2000);
    return false;
}
return true;
}
并且,增加粉色代码后,界面选择图片后,+号右侧应该出现的数字也不见了

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170402211623333333333.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/4/2 21:19:01编辑过]

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


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/4 11:42:00 [只看该作者]

加了Incremental属性的原因,这种情况无法通过正常的files.length获取文件数量


[此贴子已经被作者于2017/4/4 11:45:49编辑过]

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


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/4 11:49:00 [只看该作者]

变通一下, up1去掉Incremental属性

up4的数量这样判断

function validit_images(){
var v1 = document.getElementById("up1").files.length;
var v2 = document.getElementById("up4_thumbnails").getElementsByTagName("li").length;

if(v1 < 1){
    showTopTips("toptip1","请选择1张展示照上传",2000);
    return false;
}
if(v2 < 4){
    showTopTips("toptip1","请选择4张以上生活照上传",2000);
    return false;
}
return true;
}

 回到顶部