JS实现清空控件内容

编辑
  • 文档创建者:印然
  • 浏览次数:15300次
  • 编辑次数:23次
  • 最近更新:Kevin-s 于 2019-11-08
  • 1. 概述

    1.1 版本

    报表服务器版本
    JAR包版本移动端App版本
    10.0
    2018-12-20
    10.0

    1.2 问题描述

    在使用查询控件时,有时我们希望能够快捷重置控件的内容,或者重置所有控件的内容。效果如下图所示:

    • 重置某个控件的内容:

    222

    • 重置所有控件的内容:

    222

    1.3 实现思路

    • 只重置一个控件的值时,可以在 JS 事件中获取需要重置的控件,用setValue("")、setText("")、reset()给控件赋空值,从而清空该控件的内容;移动端使用reset()重置控件。

    • 当需要重置全部控件时,可以通过form.name_widgets获取参数界面上所有的控件,遍历每个控件并重置,代码如下所示:

    $.each(this.options.form.name_widgets, function(i, item) {
        if(item.options.type !== 'label') {
            item.setValue("");
            item.setText("");
            item.reset();
        }
    });

    2. 重置单个控件内容

    以描述示例图中清空供应商按钮为例,说明如何重置单个控件内容。

    2.1 操作步骤

    打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\parameter\ComplexParaInter.cpt

    在参数设计页面新建一个按钮控件,设定其按钮名称为清空供应商,并添加点击事件,将供应商(supplierID)控件内容清空,如下图所示:

    111.jpg

    • 事件的 JavaScript 代码如下:

    //获取supplierID控件
    var supplierID = this.options.form.getWidgetByName("supplierID");
    //将supplierID控件内容清空
    supplierID.setValue("");
    supplierID.setText("");
    supplierID.reset();
    • 移动端使用的 JavaScript 代码如下:

    var supplierID = this.options.form.getWidgetByName("supplierID"); //获取supplierID控件
    supplierID.reset();  //重置supplierID控件

    注:PC 端支持移动端的 JavaScript 代码,建议重置控件使用移动端的 JavaScript 代码,可以兼容 PC 端和移动端。

    2.2 效果预览

    1)PC端

    222

    2)移动端

    222

    3. 重置所有控件内容

    以描述示例图中清空全部按钮为例,说明如何重置单个控件内容。

    3.1 操作步骤

    打开模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\parameter\ComplexParaInter.cpt

    在参数界面新建一个按钮控件,设定其控件名称为清空全部,并添加点击事件

    222.jpg

    事件的 JavaScript 代码如下:

    $.each(this.options.form.name_widgets, function(i, item) {
        if(item.options.type !== 'label') {
            item.setValue("");
            item.setText("");
            item.reset();
        }
    });

    移动端使用下面的 JavaScript 代码:

    this.options.form.getWidgetByName("categoryID").reset();  //重置产品类别
    this.options.form.getWidgetByName("supplierID").reset();  //重置供应商
    this.options.form.getWidgetByName("pay").reset();  //重置订单支付状态
    this.options.form.getWidgetByName("start").reset();  //重置起始日期
    this.options.form.getWidgetByName("end").reset();  //重置结束日期

    注:PC 端支持移动端的 JavaScript 代码,建议重置控件使用移动端的 JavaScript 代码,可以兼容 PC 端和移动端。

    3.2 效果预览

    1)PC端

    222

    2)移动端

    222


    4. 已完成模板

    已完成模板参见:

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\参数界面JS实例\17-JS清空(重置)条件-示例一.cpt

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\参数界面JS实例\17-JS清空(重置)条件-示例二.cpt

    点击下载模板:

    17-JS清空(重置)条件-示例一.cpt

    17-JS清空(重置)条件-示例二.cpt

    5. 注意事项

    该方法不支持新填报预览,新填报预览时,清空查询控件内容会报错:CustomJSError:Cannot read property 'length'of undefined

    附件列表


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

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

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