可以将下拉框中的“不选”移在选项中的第一个吗

Image_20240227095506.png

FineReport 123木头人1 发布于 2024-2-27 09:55 (编辑于 2024-2-27 09:55)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
snrtuemcLv8专家互助
发布于2024-2-27 09:56

选择下拉框,"不选"放第一位,添加一个初始化事件,写一下js语句。

var self = this;  

self.options.name4Empty = "不选"  ;//默认为不选 可以自定义修改

$('input',this.element).click(function(){  

    if(self.$view.css('display')=='none'){  

        self.onTriggerClick();  

    }  

}); 

//全部选择放在第一位

this.addData2View = function(c){

var e = this.editComp.val();

            var b = -1;

            if (this.$view) {

                this.emptyContent = $("<div/>");

                //默认的空添加到第一个位置

            this.initContent(this.emptyContent, this.options.name4Empty, 0);

                this.$view.append(this.emptyContent);

                 var l = document.createDocumentFragment();

                 var g = this.options.data.getLength();

               

                for (var d = g - c.length; d < g; d++) {

                    var k = d + c.length - g;

                    var h = $("<div/>");

                    l.appendChild(h[0]);

                    var f = c[k].getShowValue();

                    this.initContent(h, f, d+1);

                    if (b < 0 && f == e) {

                        b = k

                    }

                }

                this.$view[0].appendChild(l);

               

                FR.HtmlLoader.loadingMoreData({

                    el: this.$view

                });

                this._setSelectedIndex(b);

                this.fixWidth()

 }

}

this.initContent= function(b, e, d) {

            if (e == null) {

                e = ""

            }

            var c = this;

            b.height(this.options.sonHeight).attr("title", e).text(e).addClass(d > -1 ? "fr-combo-list-item" : "fr-combo-list-item fr-combo-list-item-noselect").hover(function(f) {

                c.setFocusWithIndex(d);

                setTimeout(function(h) {

                    if (!h) {

                        return

                    }

                    var g = a(h.target);

                    if (c.$view[0].style.display != "none" && g.isChildAndSelfOf(a(this).parent().children())) {

                        a(this).removeClass("fr-combo-selected")

                    }

                }, 10)

            }).click(function(f) {

                c.inList = true;

                c.fireEvent(FR.Events.CLICK);

                c._setSelectedIndex(d);//修改事件为选中当前的index

                c._onEnterPressed()

            })

        }

        this._selectWithoutTriggerEvent= function() {

            if (this.selectedIndex!=0) {

            //如果不是第一个显示值

                this.setText(this._getSelectedItem().text());

                this.inList = true

            } else {

            //否者显示空

                this.clearText();

                this.searchText = "";

                this.options.need2BuildList = true

            }

            this.checkValid();

            this.collapse()

        }

  • 123木头人1 123木头人1(提问者) 请问普通填报报表的下拉框控件不选放在第一位用哪一段呀
    2024-02-27 09:58 
  • snrtuemc snrtuemc 回复 123木头人1(提问者) 整个js拷贝,放在控件初始化事件就可以
    2024-02-27 09:59 
  • 123木头人1 123木头人1(提问者) 回复 snrtuemc 拷贝了,但是没有效果
    2024-02-27 10:00 
  • snrtuemc snrtuemc 回复 123木头人1(提问者) 不会啊,我测试10.0.19和11.0.24都是可以,cpt报表,下拉框初始化事件,整个js代码拷贝
    2024-02-27 10:01 
  • 123木头人1 123木头人1(提问者) 回复 snrtuemc 可以了,谢谢
    2024-02-27 10:01 
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-2-27 09:56(编辑于 2024-2-27 09:56)

原生不支持,可以用js尝试修改

最佳回答
0
CovidLv3高级互助
发布于2024-2-27 09:56

不能

但你可以吧不选作为其中一个选项且把控件设为不能为空,这样来实现

最佳回答
0
就TM你叫夏洛啊Lv6中级互助
发布于2024-2-27 09:59

可以,但是这个下拉需要自定义选项,写入不选、是、否三个选项。然后sql里判断,if($aa="不选","","and  xxxxxx"),这样就可以

  • 4关注人数
  • 343浏览人数
  • 最后回答于:2024-2-27 09:59
    请选择关闭问题的原因
    确定 取消
    返回顶部