Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проверка наличия в массиве с условием (https://javascript.ru/forum/jquery/34448-proverka-nalichiya-v-massive-s-usloviem.html)

spo 05.01.2013 14:40

Проверка наличия в массиве с условием
 
Здравствуйте.

Есть поле ввода значения и кнопка. При клике на кнопку, значение из поля добавляется в массив. Не могу справиться с условием, которое бы перед добавлением значения в массив проверяло его наличие в нем.

<div class="wrapper">
	<input type="text" />
	<input type="submit" />
</div>


var arr = [];
$("input[type='submit']").click(function() {
	var val = $("input[type='text']").val();
	if( $.inArray(val, arr) == 1 ) alert("Значение уже присутствует в массиве. Выберите другое значение");
	arr.push(val);
});

mullih 05.01.2013 14:56

так вы если при выполнении условия или сделайте return из функции или else добавте, так как у вас при любом условии значении добавляется в массив

рони 05.01.2013 15:03

spo,
Вариант ...
var arr = [];
$("input[type='submit']").click(function() {
	var val = $("input[type='text']").val();
    if( $.inArray(val, arr) > -1 || val == "") alert("Значения нет или оно уже присутствует в массиве. Выберите другое значение");
    else  arr.push(val);
    });

spo 05.01.2013 15:05

Благодарю вас!

Рабочий код:
var arr = [];
$("input[type='submit']").click(function() {
	var val = $("input[type='text']").val();
	if( $.inArray(val, arr) !== -1 )
		alert("Значение уже присутствует в массиве. Выберите другое значение");
	else 
		arr.push(val);
});


Часовой пояс GMT +3, время: 23:48.