Сравнить поля на повторение
[html]
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function (){
var o={};
$('input:text').change(function (){
if (this.value=='') return;
if (o[this.value]) {
alert('Такое значение уже есть!');
this.value='';
} else {
o[this.value]=true;
};
});
});
</script>
</head>
<body>
<table>
<tr>
<td>
<div>
<input text="text" value="" name="n1">
</div>
</td>
<td>
<div>
<input text="text" value="" name="s1">
</div>
</td>
<td>
<div>
<input text="text" value="" name="j1">
</div>
</td>
<td>
<div>
<input text="text" value="удалить">
</div>
</td>
</tr>
<tr>
<td>
<div>
<input text="text" value="" name="n2">
</div>
</td>
<td>
<div>
<input text="text" value="" name="s2">
</div>
</td>
<td>
<div>
<input text="text" value="" name="j2">
</div>
</td>
<td>
<div>
<input text="text" value="удалить">
</div>
</td>
</tr>
</table>
</body>
</html>
|
ksa,
пишем в 1 поле -- стираем,поодумали ошиблись -- проверили нет неошиблись -- вводим тоже самое - фиг - кругом пусто а верный вариант не введёшь. |
рони, я так и не смог повторить твой тест... :-?
В первое поле написал - 1. Потом стер... Потом снова написал - 1. Все записалось, ошибки не дало... |
ааа, все понял как! :yes:
|
Тогда вот так...
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function (){
$('input:text').change(function (){
if (this.value=='') return;
var o=this;
$('input:text').each(function (){
if (this.value=='') return;
if (this==o) return;
if (this.value==o.value) {
alert('Такое значение уже есть!');
o.value='';
};
});
});
});
</script>
</head>
<body>
<table>
<tr>
<td>
<div>
<input text="text" value="" name="n1">
</div>
</td>
<td>
<div>
<input text="text" value="" name="s1">
</div>
</td>
<td>
<div>
<input text="text" value="" name="j1">
</div>
</td>
<td>
<div>
<input text="text" value="удалить">
</div>
</td>
</tr>
<tr>
<td>
<div>
<input text="text" value="" name="n2">
</div>
</td>
<td>
<div>
<input text="text" value="" name="s2">
</div>
</td>
<td>
<div>
<input text="text" value="" name="j2">
</div>
</td>
<td>
<div>
<input text="text" value="удалить">
</div>
</td>
</tr>
</table>
</body>
</html>
|
Дело в том что нужно сравнивать, на заполнения все поля.
То есть: 1. Заполнил поле. 2. Заполняет второе. 3. Идет проверка на существование аналогичного поля. (Не одного значения, а совпадения всех полей). |
Lestat621,
Последний вариант ksa, как раз проверяет все поля. |
А, как можно добиться того что бы при прохождение each, значение не проверяло само себя. То есть сравнивало со всеми поля кроме выбранного?
|
В данном варианте проверка всех полей, но одного значение, а нужно проверять все значения. То есть что бы совпадали все поля.
|
Цитата:
|
То есть смысл? Задача такая)))
Что бы было запрещено вводить одинаковые поля. |
Цитата:
|
Сейчас я вообще не смогу вводить повторения.
А должен вводить что угодно. Ошибка в случае если найдутся идентичные поля, а не импуты. Скажите как можно запретить each проверять this элемент который ввел? В примере как я понял эту проблему решает if (this==o) return; |
Цитата:
|
Цитата:
|
)))
Сравниваем не тот текст что ввели со всеми импутами. А, поля tr. |
Цитата:
|
| Часовой пояс GMT +3, время: 03:56. |