Document forms 0 submit

demon_mhm

Новичок

почему не работает document.form.submit()

ребят, подскажите плиз:
Есть форма, на ней два листбокса. Когда выбираешь в первом что-то, форма должна обновиться и подгрузить из базы значения для второго. (все формирует PHP на серваке).
Все вроде банально:

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

Чтобы поймать и остановить событие по умолчанию, я использовал следующее в главе функции

Если я изменю какую-либо его часть, предотвращение действия по умолчанию не будет работать, и страница в MSIE будет отправляться, даже если ошибки проверки будут существовать или сохраняться. В Chrome браузер не отправляет, а выдает ошибку, при этом подпрограмма предотвращения в MSIE отладка обнаруживает ошибку в той же строке.

Chrome: Uncaught TypeError: объект не является функцией

MSIE: объект не поддерживает это свойство или метод

Линия, о которой идет речь:

или любой из вариантов адресации, включая.getEmelentsById(". "); метод работает отлично, я просто в тупике по поводу проблемы, мысль о том, что мой переводчик JS заполнен, действительно перепутала мой разум.

У кого-нибудь есть идеи, которые НЕ используют JQuery, пожалуйста.

При отправке формы срабатывает событие submit , оно обычно используется для проверки (валидации) формы перед её отправкой на сервер или для предотвращения отправки и обработки её с помощью JavaScript.

Метод form.submit() позволяет инициировать отправку формы из JavaScript. Мы можем использовать его для динамического создания и отправки наших собственных форм на сервер.

Давайте посмотрим на них подробнее.

Событие: submit

Есть два основных способа отправить форму:

  1. Первый – нажать кнопку или .
  2. Второй – нажать Enter , находясь на каком-нибудь поле.

Оба действия сгенерируют событие submit на форме. Обработчик может проверить данные, и если есть ошибки, показать их и вызвать event.preventDefault() , тогда форма не будет отправлена на сервер.

  1. Перейдите в текстовое поле и нажмите Enter .
  2. Нажмите .

Оба действия показывают alert и форма не отправится благодаря return false :

При отправке формы по нажатию Enter в текстовом поле, генерируется событие click на кнопке .

Это довольно забавно, учитывая что никакого клика не было.

Метод: submit

Чтобы отправить форму на сервер вручную, мы можем вызвать метод form.submit() .

При этом событие submit не генерируется. Предполагается, что если программист вызывает метод form.submit() , то он уже выполнил всю соответствующую обработку.

Иногда это используют для генерации формы и отправки её вручную, например так:

Задачи

Модальное диалоговое окно с формой

Создайте функцию showPrompt(html, callback) , которая выводит форму с сообщением ( html ), полем ввода и кнопками OK/ОТМЕНА .

  • Пользователь должен ввести что-то в текстовое поле и нажать Enter или кнопку «OK», после чего должна вызываться функция callback(value) со значением поля.
  • Если пользователь нажимает Esc или кнопку «ОТМЕНА», тогда вызывается callback(null) .

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

  • Форма должна быть в центре окна.
  • Форма является модальным окном, это значит, что никакое взаимодействие с остальной частью страницы невозможно, пока пользователь не закроет его.
  • При показе формы, фокус должен находиться сразу внутри .
  • Клавиши Tab / Shift + Tab должны переключать фокус между полями формы, не позволяя ему переходить к другим элементам страницы.

P.S. HTML/CSS исходного кода к этой задаче содержит форму с фиксированным позиционированием, но вы должны сделать её модальной.

Модальное окно может быть реализовано с помощью полупрозрачного

Так как он перекрывает вообще всё, все клики будут именно по этому

Оцените статью
Много толка
Добавить комментарий