Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Сравнить поля на повторение (https://javascript.ru/forum/dom-window/36416-sravnit-polya-na-povtorenie.html)

Lestat621 14.03.2013 16:06

Сравнить поля на повторение
 
[html]

ksa 14.03.2013 16:22

Цитата:

Сообщение от Lestat621
Как можно сравнить что бы тест в полях не повторялся.

Как вариант...

<!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>

рони 14.03.2013 16:46

ksa,
пишем в 1 поле -- стираем,поодумали ошиблись -- проверили нет неошиблись -- вводим тоже самое - фиг - кругом пусто а верный вариант не введёшь.

ksa 14.03.2013 16:50

рони, я так и не смог повторить твой тест... :-?

В первое поле написал - 1.
Потом стер...
Потом снова написал - 1.

Все записалось, ошибки не дало...

ksa 14.03.2013 16:52

ааа, все понял как! :yes:

ksa 14.03.2013 16:57

Тогда вот так...

<!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>

Lestat621 14.03.2013 17:05

Дело в том что нужно сравнивать, на заполнения все поля.
То есть:
1. Заполнил поле.
2. Заполняет второе.
3. Идет проверка на существование аналогичного поля.
(Не одного значения, а совпадения всех полей).

рони 14.03.2013 17:27

Lestat621,
Последний вариант ksa, как раз проверяет все поля.

Lestat621 14.03.2013 17:28

А, как можно добиться того что бы при прохождение each, значение не проверяло само себя. То есть сравнивало со всеми поля кроме выбранного?

Lestat621 14.03.2013 17:29

В данном варианте проверка всех полей, но одного значение, а нужно проверять все значения. То есть что бы совпадали все поля.


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