Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   PopUp. Модальное окно. Форма (https://javascript.ru/forum/events/73421-popup-modalnoe-okno-forma.html)

NastyaNewer 14.04.2018 18:20

PopUp. Модальное окно. Форма
 
Добрый вечер, помогите разобраться с ошибкой. Плиз. Дана форма
<div id="popup_contact" class="feedback popup_block">
<div class="form">
<form name="contact_form" action="#" method="post" id="form_main"></form> <!--onsubmit="return validateForm();"-->
</div>
</div>

решила перенести событие onsubmit из HTML разметки в JS файл. Слетело.
document.getElementById('form_main').addEventListe ner('submit', function validateForm() {
valid = true;
if ( document.contact_form.username.value == '' ) {
document.contact_form.username.style.border = '2px solid red';
valid = false;
}
if ( document.contact_form.email.value == '' ) {
document.contact_form.email.style.border = '2px solid red';
valid = false;
}
return valid;
});

NastyaNewer 14.04.2018 18:34

Необходимо сделать проверку полей формы при отправке на валидацию, если поля пустые то подсветка поля

Dilettante_Pro 14.04.2018 19:29

NastyaNewer,
У вас в форме нет полей - форма пустая. Что проверять?

NastyaNewer 14.04.2018 21:29

<div id="popup_contact" class="feedback popup_block">
<div class="form">
<form name="contact_form" action="#" method="post" class="form_main"></form> <!--onsubmit="return validateForm();"-->
<label><input type="text" id="username" name="username" class="username field_name field"></label>
<label><input type="text" id="useremail" name="email" class="email_text field_email field" ></label>
<label><textarea class="space_message field_message field" name="message_people" id="message" rows="10"></textarea></label></p>
<label for="submit"></label>
<label><input type="submit" id="submit" value="Отправить" class="button_message"></label>
<label for="popup_contact" class="close_block"></label>

</div>
</div>

laimas 14.04.2018 21:50

<form name="contact_form" action="#" method="post" class="form_main"></form>

и далее по коду

</form>

Это ошибка, поля формы находятся вне ее, а закрывающий тег формы не понять что закрывает.

Должно быть

<form name="contact_form" action="#" method="post" class="form_main">
... далее ее поля

NastyaNewer 14.04.2018 22:01

Спасибо. Как отработчик события настроить в JS?

laimas 14.04.2018 22:04

Может это сначала, а для древних браузеров JS?

http://htmlbook.ru/html/input/required
http://htmlbook.ru/html/input/placeholder
http://htmlbook.ru/html/input/pattern

http://htmlbook.ru/css/required
http://htmlbook.ru/css/invalid
http://htmlbook.ru/css/valid

NastyaNewer 14.04.2018 22:27

Спасибо. Мне необходимо сделать это все чисто в отдельном файле JS. Чтобы HTML, CSS были чистыми. Использовать DOM и События

laimas 14.04.2018 22:37

Цитата:

Сообщение от NastyaNewer
Чтобы HTML, CSS были чистыми.

Уже не получится, форма то уже "замарала" HTML. )

Форма всегда есть на странице или добавляется на не динамически?

NastyaNewer 14.04.2018 22:42

У меня она работала первоначально, мне поставили задачу использовать DOM и события, вызова функций из HTML убрать:))))


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