Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.04.2011, 16:23
Новичок на форуме
Отправить личное сообщение для igorshemi Посмотреть профиль Найти все сообщения от igorshemi
 
Регистрация: 29.04.2011
Сообщений: 1

Быстро проверить измененные ячейки
Имеется таблица с кучей ячеек (14х200)
<table id="tableBase" name="tableBase" cellspacing="0" cellpadding="0" style="font-size:9pt;">
<tr>
<td title="A2"><input id="A2" name="A2" type="text" onContextMenu="menu(event, 'A2');" value="DataA2" class="tools"></td>
<td title="B2"><input id="B2" name="B2" type="text" onContextMenu="menu(event, 'B2');" value="DataB2" class="tools"></td>
...
<td title="N200"><input id="N200" name="N200" type="text" onContextMenu="return menu(event, 'N200');" value="DataN200" class="tools"></td>
<td title="O200"><input id="O508" name="O200" type="text" onContextMenu="return menu(event, 'O200');" value="DataO200" class="tools"></td>
</tr></table>
Можно как-то средствами JavaScript проверить были ли изменения в input->value? Чтоб не передавать всю матрицу на сервер (на стороне сервера код уже написал, но хотелось бы отфильтровать еще у пользователя, чтоб не засорять канал).
В голове вертится: создавать JS-копию массива и перед передачей сравнивать, но может есть более простой способ?
Ответить с цитированием
  #2 (permalink)  
Старый 29.04.2011, 17:26
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

думаю, булеву легче запоминать,чем всю строку значения

<input id=1 value=my_value_ololo /><br>

<button>изменилось???</button>

<script>
var changed = false;
document.getElementById( 1 ).onchange = function() { changed = true; }

document.getElementsByTagName("button")[0].onclick = function(){alert(changed?"ДА":"НЕТ");}
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 30.04.2011, 16:59
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Зачем такие сложности, если у инпутов есть свойство defaultValue?
<form method="post" action="#" onsubmit="return checkChangedInputs(this)">
	<div><input value="foo" /><input value="foo" /><input value="foo" /><input value="foo" /></div>
	<div><input value="foo" /><input value="foo" /><input value="foo" /><input value="foo" /></div>
	<div><input value="foo" /><input value="foo" /><input value="foo" /><input value="foo" /></div>
	<div><input value="foo" /><input value="foo" /><input value="foo" /><input value="foo" /></div>
	<div><input type="submit" /></div>
</form>
<script type="text/javascript">
	function checkChangedInputs(form){
		var inputs = form.getElementsByTagName("input");
		for (var i=0; i<inputs.length; i++){
			var input = inputs[i];
			if (input.type == "button" || input.type == "submit" || input.type == "reset") continue;
			/* кнопки трогать незачем */
			if (input.value === input.defaultValue){
				/* Здесь мы делаем что-нибудь полезное. Например, добавляем аттрибут disabled, чтобы инпут не отправлялся. */
				input.disabled = true;
			};
		};
		return false; /* это пример тестовый - форму не отправляем, а то ничего не увидим */
	}
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
onmouseout для ячейки таблицы. Sir_Hally Events/DOM/Window 2 24.01.2012 16:21
Динамическре изменение цвета ячейки по нажатию на ссылку Bagira Элементы интерфейса 7 08.04.2011 16:54
определить положение ячейки в таблице RRRinat Элементы интерфейса 6 27.04.2010 14:32
Размер ячейки использовать для определения размера рисунка art_em Общие вопросы Javascript 2 20.11.2008 11:27
Как проверить существование функции Aderba Общие вопросы Javascript 2 14.11.2008 16:09