控件只选择一个的时候,会疯狂弹窗提示至少选择两款荧光粉!,这是为啥

var selectedValues = this.getValue().split(',');  

if (selectedValues.length > 2) {  

    setTimeout(function() {  

        _g().getParameterContainer().getWidgetByName("荧光粉2").setValue([]); // 清空选择  

    }, 50);  

    alert("选择错误,请选择两款荧光粉!");  

else if (selectedValues.length < 2) {  

    setTimeout(function() {  

        _g().getParameterContainer().getWidgetByName("荧光粉2").setValue([]); // 清空选择  

    }, 50);  

    alert("至少选择两款荧光粉!");  

FineReport Ccc 发布于 2025-11-7 09:03
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
ScyalcireLv7高级互助
发布于2025-11-7 09:08(编辑于 2025-11-7 09:09)
var selectedValues = this.getValue().split(',').filter(Boolean); // 过滤空值

// 清晰的验证逻辑
if (selectedValues.length === 2) {
    // 正常情况,通过验证
    console.log("选择正确,已选择两款荧光粉");
} else if (selectedValues.length > 2) {
    // 超过选择限制
    setTimeout(() => {
        _g().getParameterContainer().getWidgetByName("荧光粉2").setValue([]);
    }, 100);
    alert("最多只能选择两款荧光粉!");
} else if (selectedValues.length === 1) {
    // 只选择了一款,提示需要再选一款
    alert("请再选择一款荧光粉!");
} else {
    // 未选择或选择无效
    console.log("请选择荧光粉");
}

----------

image.png

缺少了等于2的正常情况处理‌,这是导致问题的直接原因

最佳回答
0
用户k6280494Lv6专家互助
发布于2025-11-7 09:06(编辑于 2025-11-7 09:09)

你写了小于2 alert("至少选择两款荧光粉!");  你这个选项只能选择2个? 改成这个

var selectedValues = this.getValue().split(',');  

if (selectedValues.length != 2) {  

    setTimeout(function() {  

        _g().getParameterContainer().getWidgetByName("荧光粉2").setValue([]); // 清空选择  

    }, 50);  

    alert("选择错误,请选择两款荧光粉!");  

image.png

  • 3关注人数
  • 27浏览人数
  • 最后回答于:2025-11-7 09:09
    请选择关闭问题的原因
    确定 取消
    返回顶部