JS解决控件值刷新不及时的问题

编辑
  • 文档创建者:flyingsnake
  • 浏览次数:6756次
  • 编辑次数:8次
  • 最近更新:Kevin-s 于 2019-11-20
  • 1. 概述

    1.1 问题描述

    场景描述:首先我们经常利用按钮进行一些页面值的处理工作,但是默认的逻辑造成,每次新填报的值,需要点击下空白区域或是执行某个其他操作才可以被正确读取。

    那么我们如何处理呢?

    如下为例:当我们用常规取值的时候,虽然B3单元格录入了值,但是在光标不离开 B3 的前提下,用 JS 只获取到了空值而不是实际的值“2”。

    想获得 B3 的值,需要在空白处点击下鼠标,让文本框的左上角的红三角出现才可以。

    优化过后则可以将光标强制跳转到 A2 单元格,使其获得光标,进而强制 B3 单元格刷新值。

    222

    1.2 实现思路

    用户通过文本框填报了值,而需要对这个值进行取出判断的时候,经常会取空值,只有用户点击了空白区域,才可以正常取值。

    比如:用户填写了手机号码,就可以跳转到领取奖品的页面,若手机号码是最后一个填报栏,填写后,用户直接提交,系统则会认为,手机号码一栏为空。既然任意点击空白处就可以。那么我们就用 JS 来强制跳转光标实现同样的功能。

    2. 示例

    2.1 模板制作

    模板样式设计如下,A3 和 B3 单元格添加文本控件,C3 单元格为 A3 和 B3 相加值,D3 和 E3 单元格添加按钮控件:

    image.png

    image.png

    image.png

    2.2 “直接相加”按钮的js

    D3 控件名称为直接相加,添加一个点击事件:

    image.png


    var B3 = contentPane.curLGP.getCellValue("B3");
    var A3 = contentPane.curLGP.getCellValue("A3");
    alert("a3的值:"+A3);
    alert("b3的值:"+B3);

    2.3 “优化后”按钮的 JS

    E3 控件名称为优化后,添加一个点击事件:

    image.png


    contentPane.curLGP.selectTDCell("A2");
    var B3 = contentPane.curLGP.getCellValue("B3");
    var A3 = contentPane.curLGP.getCellValue("A3");
    alert("a3的值:"+A3);
    alert("b3的值:"+B3);

    contentPane.curLGP.selectTDCell("A2")表示的是,将光标强制跳转到 A2 单元格,也就相当于用鼠标点击了一下 A2 单元格,使其获得光标,进而强制 B3 单元格刷新值。

    2.3 预览效果

    保存模板,选择填报预览,效果如下图所示:

    222

    注:经过测试,手机端和 H5 不支持该效果。


    3. 模板下载

    模板效果在线查看请点击:JS 解决控件值刷新不及时的问题.cpt

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\04-JS解决控件值刷新不及时的问题.cpt

    点击下载模板::04-JS解决控件值刷新不及时的问题.cpt


    附件列表


    主题: 二次开发
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]