当列表中存在重复值时显示警报消息

Posted

技术标签:

【中文标题】当列表中存在重复值时显示警报消息【英文标题】:Show alert message when duplicate values are present in a list 【发布时间】:2019-06-12 14:33:56 【问题描述】:

我有两列,如图所示。当我单击 right 按钮时,所选字段将转到第二列,但我有 4 个字段已经来自数据库,现在如果我将名字移动到第二列,它也会接受,但我需要如果已经选择了值,则将错误消息显示为“不允许重复”

  "click #lstBox1 > option": function(e)            
        var selectedOpts = $('#lstBox1 option:selected');
        if (selectedOpts.length == 0) 
            alert("Nothing to move.");
            e.preventDefault();
        
        $('#lstBox2').append($(selectedOpts).clone());
        $(selectedOpts).remove();
        e.preventDefault();
        var text = $(e.target).text();            
        var result = this.data.filter(function (obj) 
            return obj.columnsexpo === text;
        );
        if (_.isEmpty(result)) 
            this.data.push(columnsexpo: text, placeholder: true );
            this.tab.handsontable("loadData", this.data);
            console.log(this.data);
        
    ,
  "click #lstBox2 > option": function(e)
        var selectedOpts = $('#lstBox2 option:selected');            
        $('#lstBox1').append($(selectedOpts).clone());
        $(selectedOpts).remove();
        e.preventDefault();
        var text = $(e.target).text();
       // console.log(text);
        var result = this.data.filter(function (obj) 
            return obj.columnsexpo === text;
        );

            this.data.pop( columnsexpo: text, placeholder: true );
            this.tab.handsontable("loadData", this.data);
            console.log(this.data);

    ,

【问题讨论】:

【参考方案1】:

试图重新创建一个丑陋的代码副本。

我的代码所做的是,在button click 上,它得到span element,即clicked

此元素随后存储在 variable and removed from the left side div 中。

right side div 中存在的所有text data in span 都被提取并存储在array 中。

left div 中的selected span 的文本与right div 中所有spans 中的文本进行比较。

如果找到匹配项,则会引发警报。存储left div span 的变量然后是appendedright side div

    var tomove;
    var selected;
    $('span').click(function()tomove=$(this).text();selected=$(this))
    $("button").click(function()

selected.remove();
var t=$('#right > span');
var str=$(t).text().toString();
var arr=str.split('');
   var txt=$(selected).text().toString();
console.log(txt)

    if(arr.includes(txt))
    
        alert("Duplicates aren't allowed!")
    
else
  $("#right").append(selected);

  

    )
    
 div

            border-color: blue;
            border-style: solid;
            border-width: 1px;
        
        span
        
            border-color:green;
            border-style: solid;
            border-width: 1px;
        
        #right
        
            margin-left:100px;
        
     
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script
  src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
  integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E="
  crossorigin="anonymous"></script>
    
       
</head>
<body id="body">
    <div id="left">
<span>a</span><br>
<span>s</span><br>
<span>d</span><br>
<span>f</span><br>
<span>g</span><br>

    </div>
    <div id="right">
            <span>e</span><br>
            <span>r</span><br>
            <span>g</span><br>
            <span>w</span><br>
            <span>g</span><br>

    </div>
    <button id="move">Move</button>
    
   </body>
   
</html>

【讨论】:

谢谢....我可以使用它,但问题是选定的字段只是移动但不存储在数组中,如果它存储在数组中,那么我们可以使用这种格式,而不是所有其他选择的重复值字段存储在数组中 我收到警报消息,但重复值仍在移动到第二列检查此jsfiddle.net/zwc5b0p8 立即查看!忘了放一个else

以上是关于当列表中存在重复值时显示警报消息的主要内容,如果未能解决你的问题,请参考以下文章

当复选框兄弟姐妹更改为选中时显示警报

将 SwiftUI 警报或操作表绑定到值类型模型属性的可选性(当属性为 nil 时显示视图)的好方法是啥?

如何通过 Javascript / jQuery 在按钮单击时显示引导警报?

当 BIRT 报告中的表为空时显示“无数据”消息

从下拉列表中选择任何值时显示 3 个按钮 [重复]

在异步任务运行时显示警报框并在任务完成时删除?