/ / Пошук, чи існує атрибут дубліката імені - javascript, jquery

Знаходження атрибута дубліката назви - javascript, jquery

Скажімо, я маю наступне;

<input type="text" id="1" name="1" value="" />
<input type="text" id="2" name="2" value="" />
<input type="text" id="3" name="3" value="" />
<input type="text" id="4" name="2" value="" />

Я намагаюся мати функцію, яка зможе з'ясувати, чи існує атрибут з тим самим іменем.

Тож для цього прикладу з’явиться червоний прапор id="4" має атрибут повторюваного імені.

Я знаю, що повинен зробити щось подібне, але, можливо, я б’юся тут навколо куща. Що ви думаєте, хлопці?

function findDuplicates(name) {
var found = 0;

$("input").each(function() {
if($(this).attr("name") == name)
found++;
});

return found;
}

Відповіді:

4 для відповіді № 1

Спробуйте селектор атрибутів jQuery:

if(1 < $("input[name=2][type=text]").length) {
//duplicate
}

Тож ваша функція буде виглядати так:

function findDuplicates(name) {
return $("input[name="+ name +"]").length;
}

РЕДАГУВАТИ

З простим JS:

function findDuplicates(name) {
return document.getElementsByName(name).length;
}

0 для відповіді № 2

Зробіть десь порожній div, скажімо, я дав моєму div ідентифікатор "return_value".

<script>
function validate(){
var name1 = document.getElementById("1").value;
var name2 = document.getElementById("2").value;
var name3 = document.getElementById("3").value;
var name4 = document.getElementById("4").value;

var error = "";

error = (name1 == name2 || name1 == name3 || name1 == name4 || name2 == name3 || name2 == name4 || name3 == name4) ? "Duplicate Entry!" : "Data OK!";

getElementById("return_value").innerHTML = error;

}
</script>

Ви просто робите форму, надіславши дзвінок наФункція Javascript для порівняння. Якщо ви хочете фактично надіслати форму, якщо дані дійсні, ви можете зробити це за допомогою AJAX. Попередній постер правильний тим, що на нього важко відповісти без додаткової інформації про те, що конкретно ви намагаєтесь зробити.


0 для відповіді № 3
var found = 0;
var array = new Array(); //create new array

$( "input[type=text]" ).each(function( index ) {
var name = $(index).attr("name"); //get name of current element
if(array.indexOf(name) == -1) //check if name doesn"t exist in array
{
array.push(name); //if true, add it to the array
} else {
found++; //if it exists, increment found
var duplicate = $(index).attr("id"); //get the id of the current element
console.log("Input with Id = " + duplicate + " has a duplicate name attribute");
}


});

0 для відповіді № 4

Якщо у вас мінус 1 від довжини, ви можете повернути 0 без дублікатів.

Я також передав ім'я елемента та ім'я атрибута для повного повторного використання.

function hasDuplicates(el, attr, value) {
return $(el + "[" + attr + "=" + value + "]").length - 1;
}