- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть большая форма (>40 полей). Требуется на стороне браузера средствами JavaScript проверить были ли введены новые значения хотя бы в одно поле. Как это сделать проще всего?
Пока придумал только один способ - при открытии формы гененировать хэш (например, md5) суммарного значения всех полей, а на onsubmit с помощью javascript делать такой же хэш и сравнивать с первоначальным. Не очень простой способ + требуется подключение внешних библиотек js (лишние килобайты трафика критичны).
Подскажите более простой способ.
Можно использовать <input ... onChange = 'function()'>
Через обработчик onChange/onClick?
Или вместо md5 - CRC(короткий алгоритм)
Можно использовать <input ... onChange = 'function()'>
Если человек внес изменения в форму, а потом вернул прежнее значение. то с onChange будет ложное срабатывание.
Или вместо md5 - CRC(короткий алгоритм)
Спасибо, посмотрю в эту сторону.
Если человек внес изменения в форму, а потом вернул прежнее значение. то с onChange будет ложное срабатывание.
Хранить первоначальное значение и с ним сравнивать.
Хранить первоначальное значение и с ним сравнивать.
На самом деле, первоначальное значение и так хранится. Думаю, что это нужно в первую очередь для работы кнопки Reset, которая эти значения восстанавливает.
Для полей input[@type = 'text' or @type = 'password'] и textarea - см. свойство defaultValue, для input[@type = 'radio' or @type = 'checkbox'] - defaultChecked. С select хитрее - сохраняется свойство defaultSelected для каждого option, поэтому их приходится оббегать циклом.
При этом для обычных (не-multiple) селектов есть такая засада: если ни у одного option не установлен атрибут selected (т.е. значение не выбрано) - первому option выставляется свойство selected = true, что в некотором смысле логично. Я придумал, что можно обходить все option-ы, и, если выбран первый и ни у одного другого нет свойства defaultSelected == true - решать, что значение не изменилось. Возможно, будет шустрее работать, если сразу после загрузки формы сохранять для select'ов первоначальные значения.
Вот тут можно посмотреть пример, а заодно сообщить мне, работает ли оно в IE7 :)
а заодно сообщить мне, работает ли оно в IE7
Работает. Спасибо за defaultValue, не знал.