Foxtable(狐表)用户栏目专家坐堂 → 如何实现同一个submit有多种判断


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

主题:如何实现同一个submit有多种判断

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


加好友 发短信
等级:二尾狐 帖子:586 积分:4817 威望:0 精华:0 注册:2015/11/22 10:28:00
如何实现同一个submit有多种判断  发帖心情 Post By:2022/2/25 8:40:00 [显示全部帖子]

手机端,页面放了一个table控件,用来显示不同学生,

页面下面放了一些文本框控件,

当点击table不同记录时,能将内容填充到下面的文本框控件(已实现)

 

放了2个按钮,新增,修改,

点新增,会将文本框内容作为新增记录提交到后台(已实现)

点修改,会将文本框内容作为修改值保存到后台,替换当前选择记录的内容(已实现)

 

以下代码是在表单提交时做一个必填字段的判断

wb.AddForm("","fm1",pageurl).Attribute="on submit='return mustInput()'" 

对应js代码为:

fun ction mustInput(){
    var result=submit AjaxFileds("mustInput.htm","","学号","姓名",false);
    if(result=="OK"){
        return true;
    }
    else{
        showTopTips("tp1",result,1500);
        return false;
    }
}

 

新增、修改按钮代码为:

With wb.AddButtonGroup("fm1","btg1",False)
    .add("新增","新增","submit")
    .add("修改","修改","button")   /这里不知怎么能加多一个是否点击了table,选择记录的判断
End With

 

新增时,先判断必填,然后提交数据,这个没问题,已实现

现在的问题时,希望点修改时,先判断是否选择了记录,未选择时,给个提示:请先选择一条记录。

然后再判断必填项,最后提交数据,修改对应主键记录的值。

 

js代码我都想好了,就是怎么能触发执行这个函数的问题。

fun ction mustInput2(){
 if (tab.primarykey){
    var result=submit AjaxFileds("mustInput.htm","","学号","姓名",false);
    if(result=="OK"){
        return true;
    }
    else{
        showTopTips("tp1",result,1500);
        return false;
    }
}
    else{
        showTopTips("tp1",'请选择一条记录!',1500);
        return false;}
}

[此贴子已经被作者于2022/2/25 8:40:22编辑过]

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


加好友 发短信
等级:二尾狐 帖子:586 积分:4817 威望:0 精华:0 注册:2015/11/22 10:28:00
  发帖心情 Post By:2022/2/25 9:10:00 [显示全部帖子]

以下是引用有点蓝在2022/2/25 9:00:00的发言:
.add("修改","修改","button") .arrtibute = “onclick='mustInput2()'”

这样是可以实现选择记录的判断和字段的必填判断

但是设为button后,就不会提交数据了,没法修改后台数据。


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


加好友 发短信
等级:二尾狐 帖子:586 积分:4817 威望:0 精华:0 注册:2015/11/22 10:28:00
  发帖心情 Post By:2022/2/25 10:07:00 [显示全部帖子]

以下是引用有点蓝在2022/2/25 9:13:00的发言:
函数里不是调用了submit AjaxFileds吗,怎么会没有提交

原来是对应页面的代码里没有写更新后台数据,加上后能更新后台数据了

现在的问题是,数据是在后台修改的,页面并未体现更新,需要刷新才行

想着提交后能自动刷新页面,参考帮助里跳转页面的代码加了一句Refresh

 

 If e.PostValues.ContainsKey("学号") = False OrElse e.PostValues.ContainsKey("姓名") = False  Then
            e.WriteString("学号/姓名为必填!")    //这里是判断必填项的,效果OK
            Return ""
 Else
            If dr IsNot Nothing Then     
                sts = new String(){"学号","姓名","性别","备注"}   //这里是更新后台数据的,效果OK
                For Each st As String In sts
                    dr(st) = e.PostValues(st)
                Next
                dr.save
            End If
            e.WriteString("OK")     //这句是返回必填判断的
          Dim url As String = "stuinfo.htm?stuno=" & e.GetValues("stuno")    //定义url
         e.WriteString("<meta http -equiv='Re fresh' con tent='0; url=/" url & "'>")    //根据url跳转回当前页面,实现刷新效果,不管用
 End If

 

但并未实现本页面的刷新,应该是e.writestring只能写一次的原因,

不知怎么改。

[此贴子已经被作者于2022/2/25 10:08:52编辑过]

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


加好友 发短信
等级:二尾狐 帖子:586 积分:4817 威望:0 精华:0 注册:2015/11/22 10:28:00
  发帖心情 Post By:2022/2/25 11:50:00 [显示全部帖子]

感谢蓝版,这些问题都解决了。

 

 

我在页面下面放了一个'获奖' 按钮,跳转到获奖记录页面

这个页面是多行记录的table,相当于1个子表
按钮的标题是动态的,根据获奖记录数动态加上后缀,比如 获奖(3) 
//已实现
子页面有增加、删除明细的功能                                                     //已实现

 

跳转到成绩页面的按钮的代码为:
Dim scorepage = "score.htm?stuno=" & stuno

Dim cnt As String = Functions.Execute("返回记录数",stuno)
With wb.AddButtonGroup("fm1","btg1",False)
    .Add("成绩","成绩"  &  cnt,"button",scorepage)
End With

 

从成绩页面返回到学生页面的按钮代码:
With wb.AddButtonGroup("fm1","btg3",False)
    Dim  backurl = "stuinfo.htm?stuno=" & stuno
    .Add("返回","返回","button",backURL)   '生成返回原来页面的按钮         '①
   '.Add("返回","返回","button").Attribute = ""    '②
End With


现在的问题是:当在学生详情页修改了数据,没有提交保存,点击跳转到了获奖记录页,添加了记录,再返回学生详情页,
若用①的返回,则刚才修改的学生信息就丢失了,但获奖统计值会更新;
若用②的返回,则能保留学生的修改信息,但获奖的统计值不会更新。

请教:如何实现从明细页返回学生详情页时,即能保留刚才修改的学生信息(此时未提交后台保存),又能更新明细表的统计值。

[此贴子已经被作者于2022/2/25 11:51:22编辑过]

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


加好友 发短信
等级:二尾狐 帖子:586 积分:4817 威望:0 精华:0 注册:2015/11/22 10:28:00
  发帖心情 Post By:2022/2/25 13:29:00 [显示全部帖子]

以下是引用有点蓝在2022/2/25 11:54:00的发言:
方法1、用①的返回:点击跳转到了获奖记录页的时候同时提交保存学生详情页数据,返回后刷新学生详情页
2、用②的返回:获奖记录页返回新的统计值,然后js获取统计值后更新前端显示

我想用②的思路,不过不知怎么用js获取统计值并更新前端,请指教。


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


加好友 发短信
等级:二尾狐 帖子:586 积分:4817 威望:0 精华:0 注册:2015/11/22 10:28:00
  发帖心情 Post By:2022/2/25 16:52:00 [显示全部帖子]

e.WriteString("OK|" & datatables().comoute(xxxx))   

这句加上了,能返回给js的,OK

 

result.split("|")[1];  

这句是能获取统计数值的,OK

 

 

document.getElementById("获奖").value=result.split("|")[1];  

这句无效,我猜有这么几个原因:

① 这个按钮是在学生页面,不是在获奖页面(就是不在执行js代码的页面),可能获取不到这个按钮,就无效了;

② 改变按钮标题是用value属性吗?


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


加好友 发短信
等级:二尾狐 帖子:586 积分:4817 威望:0 精华:0 注册:2015/11/22 10:28:00
  发帖心情 Post By:2022/2/25 19:34:00 [显示全部帖子]

按钮的id能获取,但就是不能写值

 

在js里加这几句代码:

alert('获奖');                //这句能弹窗

alert(docu ment.getEle mentById('返回').innerText);                //这句是获奖页面的返回按钮的标题,能弹窗

alert(docu ment.getEle mentById('获奖').innerText);              //这句是学生页面的获奖按钮,不能弹窗,改成value也不行

alert('end');              //这句不能弹窗

 

可能我猜想的没错:执行这句代码时,学生页面没有打开,读不到按钮ID。



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


加好友 发短信
等级:二尾狐 帖子:586 积分:4817 威望:0 精华:0 注册:2015/11/22 10:28:00
  发帖心情 Post By:2022/2/26 10:25:00 [显示全部帖子]

以下是引用有点蓝在2022/2/25 11:54:00的发言:
方法1、用①的返回:点击跳转到了获奖记录页的时候同时提交保存学生详情页数据,返回后刷新学生详情页
2、用②的返回:获奖记录页返回新的统计值,然后js获取统计值后更新前端显示

老师能教一下方法一吗

就是如何在跳转至获奖页面时能提交学生的信息


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


加好友 发短信
等级:二尾狐 帖子:586 积分:4817 威望:0 精华:0 注册:2015/11/22 10:28:00
  发帖心情 Post By:2022/2/26 17:34:00 [显示全部帖子]

我做的效果和帮助里一个不同点是:我的明细是跳转到新页面,帮助里是在同一页面。

 

希望实现的效果是:在学生信息页修改学生信息后,不点修改(提交),点获奖按钮,跳转到获奖页,

增删记录后,点返回,回到学生信息页,获奖按钮的标题能显示最新的获奖数,同时保留了之前的学生信息的修改,点修改,提交修改,完成操作。

 

[此贴子已经被作者于2022/2/28 8:45:40编辑过]

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


加好友 发短信
等级:二尾狐 帖子:586 积分:4817 威望:0 精华:0 注册:2015/11/22 10:28:00
  发帖心情 Post By:2022/2/27 21:11:00 [显示全部帖子]

以下是引用有点蓝在2022/2/27 20:35:00的发言:
获奖信息页的返回按钮,不要使用history.back()。应该直接指定要返回的页面,比如

.Add("返回","返回","button","studetail.htm?stuno=" & stuno)

之前是这么写的,但这样重新跳转到学生详情页,未保存的修改过的学生信息就没了


 回到顶部
总数 11 1 2 下一页