Быстро проверить измененные ячейки
Имеется таблица с кучей ячеек (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-копию массива и перед передачей сравнивать, но может есть более простой способ? |
думаю, булеву легче запоминать,чем всю строку значения
<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> |
Зачем такие сложности, если у инпутов есть свойство
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> |
Часовой пояс GMT +3, время: 14:26. |