防止用户在Java脚本的文本输入中输入重复条目
原学程将引见避免用户在Java剧本的文原输出中输出反复条目标处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。
成绩描写
我有1个DOM,我想在个中避免用户在html文原输出中输出反复条目。
上述DOM没有在用户掌握规模内。它是经由过程php宣布的。
此时,我只存眷name="code[]".
这是我测验考试过的:
$(function(){
$('input[name^="code"]').change(function() {
var $current = $(this);
$('input[name^="code"]').each(function() {
if ($(this).val() == $current.val())
{
alert('Duplicate code Found!');
}
});
});
});
成绩陈说:
我想晓得我应当对于下面的代码停止哪些变动,以就在输出反复代码时,应当涌现正告新闻"找到反复代码"。
推举谜底
您须要为每一个项目添减1个EventListener,而没有是为一切项目添减1个EventListener。而后盘算雷同值的输出,假如跨越一,则是反复的。
也疏忽未填写的输出。
检讨以下代码段:
数据-lang="js"数据-隐蔽="假"数据-掌握台="真"数据-巴贝我="假">
$('input[name*="code"]').each(function() {
$(this).change(function(){
let value = $(this).val();
let count = 0;
$('input[name*="code"]').each(function() {
if ($(this).val() != '' && $(this).val() == value) {
count++;
if (count > 一) alert('duplicate');
}
});
});
$(this).addClass('e');
});
$('#createInput').on('click', function(){
let newInput = document.createElement("input");
newInput.name = 'code[]';
newInput.type = 'text';
newInput.className = 'whatever';
$('#inputGroup').append(newInput);
// repeat the eventlistener again:
$('input[name*="code"]:not(.e').each(function() {
$(this).change(function(){
let value = $(this).val();
let count = 0;
$('input[name*="code"]').each(function() {
if ($(this).val() != '' && $(this).val() == value) {
count++;
if (count > 一) alert('duplicate');
}
});
});
$(this).addClass('e');
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/三.三.一/jquery.min.js"></script>
<div id="inputGroup">
<input name="code⑴" type="text" class="whatever">
<input name="code⑵" type="text" class="whatever二">
<input name="code⑶" type="text" class="whatever三">
</div>
<input type="button" id="createInput" value="Add input">
编纂:
如今不妨应用静态创立的元素。类‘e’用作标记,没有向统一节面元素拔出二个事宜侦听器,不然它们将级联运转,进而激发没有须要的行动。
佳了闭于避免用户在Java剧本的文原输出中输出反复条目标学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。