如何判断文本框输入值是否重复。

下图时一个设备的使用表,
1:设备序列号是通过扫描枪输入的一共10个文本框,如何检验序列号有没有重复。
2:如何检验设备状态如果不是“正常”时,不能使用。

设备使用登记表.cpt

谢谢!设备使用登记表.png

FineReport 刘志权 发布于 2019-11-28 22:05
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
孤陌Lv6资深互助
发布于2019-11-29 07:49

在文本框 编辑结束事件 写这个 JS   我测试过了 上下 都可以遍历比较  注意$("[id*='A']").  需要你根据实际需求  自行修改列号 这句是比较A列
var exist=false;
var self=this;
var s;
$("[id*='A']").each(function(){
if($(this).text()==self.getValue()){
exist=true;
}
});
if(exist){
alert("此数据已存在");
this.setValue('');
this.setText('');
return false;
}

  • luojian0323 luojian0323 经测试$(this).text()对下拉控件不起作用,返回空值
    2020-04-28 15:18 
  • 孤陌 孤陌 回复 luojian0323 你不要显示控件看看
    2020-04-28 15:36 
  • luojian0323 luojian0323 回复 孤陌 哦,不直接显示控件可以。
    2020-04-28 16:48 
  • luojian0323 luojian0323 我这个是直接显示控件的版本,你看看: var arr=contentPane.getWidgetsByName(\"bw\"); //获取扩展单选按钮组控件bw if(arr[0]!=undefined) { var sum=0; for(var i=0;i=1){ //alert(sum) FR.Msg.alert(\"提示\",\"数据重复.\"); this.setValue(\"\") } } var value=this.getValue(); if(value!=\"\"){this.setEnable(false);} else{this.setEnable(true);}
    2020-04-28 16:49 
最佳回答
0
圣体叶小凡Lv6高级互助
发布于2019-11-28 22:47

If(len(A2) = 0, true, 

if(len(ARRAY(A2)) = len(UNIQUEARRAY(ARRAY(A2))), true, false)

)

然后将这个公式放到A1单元格隐藏, 然后填报校验写 A1=true,这样校验满足这个公式,才能提交。

就是用数组去重,判断数组长度,有没有重复;

扫码枪这个不太了解,你可以试一试这种校验能不能检测出来,如果说设备状态为F2单元格,然后你直接填报检验写

F2="正常",只有满足这个条件才能提交

image.pngimage.png

  • 刘志权 刘志权(提问者) 1:设备重复 我是这样来解决的 在A6文本框控件的事件中添加 编辑结束后 var A5Value = contentPane.curLGP.getCellValue(\"A5\"); //获取A5单元格的值 if (this.getValue() == A5Value ){ //判断输入值是否相等 FR.Msg.alert(\"注意\", \"设备重复\"); //弹出对话框 return false; } 以此类推,到A14 。因为我用扫描枪来插入行我一直实现不了,后面就只能用这个笨方法预定义了10行。 另外设备状态要“正常”的条件才能提交这里,我测试了,如果我A列的文本框不输入序列号时,状态的单元格也会报错,请帮忙继续教教我。
    2019-11-29 00:15 
  • 3关注人数
  • 703浏览人数
  • 最后回答于:2019-11-29 07:49
    请选择关闭问题的原因
    确定 取消
    返回顶部