|
12.02.2018, 11:28
|
Интересующийся
|
|
Регистрация: 28.07.2017
Сообщений: 12
|
|
Проверка совпадения полей на Jquery
Всем привет!! Не додумался как сделать проверку полей.
Например у меня есть три поля
<input type='text' name='tovar'/>
<input type='text' name='tovar'/>
<input type='text' name='tovar'/>
надо чтобы скрипт проверял на одинаковые значения
по мере вбивания. Т.е вбили в первое в поле, перешли на второе
если во втором поле вбивается то же значение, то сразу же подсветить 2 поле красным, если же вбивается в третье поле повторяющееся значение из какого либо вбитого поля, то она должна подкраситься красным цветом.
Если есть аналогичные решения дайте ссылку плиз... Спасибо!!
Кто поможет на телефон 100 рублей, пишите в личку Ваш номер!
И да полей м.б не ограничено до 7 точно...
|
|
12.02.2018, 11:53
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
AlexSergeev1990,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.err {
border: 4px red solid;
}
</style>
<script>
window.addEventListener("DOMContentLoaded", function() {
var tovar = [].slice.call(document.querySelectorAll('[name="tovar"]'), 0);
tovar.forEach(function(item, i) {
item.addEventListener("input", function() {
var val = this.value.trim(), err = val && tovar.some(function(el, k) {
el = el.value.trim();
return k != i && el && el == val;
});
err ? item.classList.add("err") : item.classList.remove("err");
});
});
});
</script>
</head>
<body>
<input type='text' name='tovar'/>
<input type='text' name='tovar'/>
<input type='text' name='tovar'/>
</body>
</html>
|
|
12.02.2018, 11:58
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,794
|
|
Задавать нескольким input одно имя - неправильно (если это не массив).
Upd. Используя jq: https://jsfiddle.net/8120x4sy/
Последний раз редактировалось Nexus, 12.02.2018 в 12:02.
|
|
12.02.2018, 13:14
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Nexus,
можно, если на сервере не РНР или он, но сами разбираем сырые данные, а не используем готовый массив.
|
|
12.02.2018, 13:21
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,794
|
|
laimas, я не писал, что нельзя. С дуру можно многое.
Браузер отправит данные только 1 из этих полей, если не юзать js.
Последний раз редактировалось Nexus, 12.02.2018 в 13:24.
|
|
12.02.2018, 13:25
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Nexus
|
Браузер отправит данные только 1 из этих полей.
|
Нет, браузер все поля отправит, но если при этом получать из $_GET/$_POST, то в них будет только последнее поле.
|
|
12.02.2018, 13:33
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,794
|
|
Сообщение от laimas
|
Нет, браузер все поля отправит, но если при этом получать из $_GET/$_POST, то в них будет только последнее поле.
|
Действительно, я ошибся.
|
|
|
|