使 jQuery 动态字段独一无二

Posted

技术标签:

【中文标题】使 jQuery 动态字段独一无二【英文标题】:Make jQuery dynamic fields unique 【发布时间】:2017-10-12 16:02:01 【问题描述】:

我有动态添加的表单字段。如何检查这些字段的值是否唯一?

html

<div class="inputs">
      <input type="text" class="form-control" id="regSection" name="regSection[]" required="required">
</div>
<a href="#" id="#add">ADD</a>

javascript

$('#add').click(function(e) 
    e.preventDefault();
    $('<input type="text" class="form-control" id="regSection" name="regSection[]">').fadeIn('slow').appendTo('.inputs');
);

【问题讨论】:

首先,id中不需要添加## 只是 id 的选择器 其次,ID 必须是唯一的。您输入的所有字段都将获得相同的 ID。 【参考方案1】:

我已从输入中删除了 ID,因为 ID 必须是唯一的。

此代码将返回 found id 重复文本框中的值。否则,它将返回not found

$('#add').click(function(e) 
    e.preventDefault();
    $('<input type="text" class="form-control" n ame="regSection[]">').appendTo('.inputs');
);

$('#check').click(function(e)
    var arr = [];
    var found = 0;
    $('.inputs input').each(function()
        var myVal = $(this).val();
        if(arr.includes(myVal))
            found++;
        else
            arr.push(myVal);
    );
    
    if(found) 
        console.log('found');
    else 
        console.log('unique');

);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="inputs">
      <input type="text" class="form-control" name="regSection[]" required="required">
</div>
<a href="#" id="add">ADD</a>

<button id="check">Check</button>

【讨论】:

非常感谢!关于 ID - 这只是一个示例代码,我的代码太长了。我没有注意到这个ID。而这个解决方案正是我所需要的! 很高兴它有帮助 :) 如果它解决了您的问题,您可以将其标记为答案 :)

以上是关于使 jQuery 动态字段独一无二的主要内容,如果未能解决你的问题,请参考以下文章

如何使laravel中的动态表单字段可填写

使用Python生成艺术二维码,如何使你的二维码独一无二呢?

使 post slug 独一无二

jQuery中的动态字段验证

Jquery 验证插件,包括文件验证和动态字段

怎样给jQuery动态附加新的元素