Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.09.2016, 12:09
Интересующийся
Отправить личное сообщение для ru.scr Посмотреть профиль Найти все сообщения от ru.scr
 
Регистрация: 21.09.2016
Сообщений: 20

Отправка формы через Ajax
Приветствую. Есть форма обратной связи в модальном окне, отправка происходит при проверке через Ajax.

Проблема в том, что форма отправляется даже пустой, хотя у одного из input стоит обязательно. При нажатии отправить подсвечивает обязательно, но все равно отправляет. Как сделать проверку этого поля, и если оно пустое не отправлять? Спасибо!

Код Ajax:

<script>
		$(document).ready(function () {
			$("input#submit").click(function(){
				$.ajax({
					type: "POST",
					url: "process.php",
					data: $('form.contact').serialize(),
					success: function(msg){
						$("#thanks").html(msg)
						$("#myModal").modal('hide');
						alert("Спасибо, ваше сообщение отрпавлено!");
					},
					error: function(){
						alert("failure");
					}
				});
			});
		});
    </script>


Код PHP обработчика:

<?php
$myemail = 'mail@ukr.net';
if (isset($_POST['name'])) {
$name = strip_tags($_POST['name']);
$phone = strip_tags($_POST['phone']);
$email = strip_tags($_POST['email']);
$message = strip_tags($_POST['message']);
echo "<span class=\"alert alert-success\" >Сообщение отправлено!</span><br><br>";
$to = $myemail;
$email_subject = "Заявка на консультацию: $name";
$email_body = "Получена заявка на консультацию. ".
" Подробнее:\n Имя: $name \n ".
"Email: $email\n Телефон: $phone\n Вопрос \n $message";
$headers = "From: $myemail\n";
$headers .= "Reply-To: $email";
mail($to,$email_subject,$email_body,$headers);
}?>
Ответить с цитированием
  #2 (permalink)  
Старый 21.09.2016, 14:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ru.scr
хотя у одного из input стоит обязательно.
И что у него стоит?
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2016, 17:27
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

ru.scr,
Но ты же нигде не проверяешь данные в инпутах. Проверь и отправь/не отправь
Как пример:
var nick_regex = /^[a-zа-яё0-9_\-]{3,15}$/i,
         nick_correct = nicknameRegex.test(input_value); //<--- какая-то фигня с инпута

    if (input_value && nick_correct) { // <--- если норм
      $highlight_group
        .removeClass('has-error')
        .addClass('has-success');

      $.ajax(....); // <--- тогда аякс

    } else { // <--- если нет, то идите в рутскоуп
        $highlight_group.addClass('has-error');
         return;
    };
Ответить с цитированием
  #4 (permalink)  
Старый 25.09.2016, 17:42
Интересующийся
Отправить личное сообщение для ru.scr Посмотреть профиль Найти все сообщения от ru.scr
 
Регистрация: 21.09.2016
Сообщений: 20

Так и не разобрался с проблемой.. может кто помочь? все равно отправляет форму даже если пустая...
Ответить с цитированием
  #5 (permalink)  
Старый 25.09.2016, 17:42
Интересующийся
Отправить личное сообщение для ru.scr Посмотреть профиль Найти все сообщения от ru.scr
 
Регистрация: 21.09.2016
Сообщений: 20

Сообщение от laimas Посмотреть сообщение
И что у него стоит?
обязательно к заполнению
Ответить с цитированием
  #6 (permalink)  
Старый 25.09.2016, 19:15
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

ru.scr,
// <input type="submit" id="submit" value="Отправить">

$('form.contact').submit(function(e){
	e.preventDefault();
	$.ajax({
		data: $(this).serialize(),
		// ...
	});
});
Ответить с цитированием
  #7 (permalink)  
Старый 25.09.2016, 20:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ru.scr
обязательно к заполнению
<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body>
<form>
<input name="as" required="" />
<input type="submit" value="GO" />
</form>
</body> 
</html>


Получится отправить?

И читайте о том как оформляются почтовые отправления. Так отправлять почту нельзя.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка формы после ajax проверки ShutTap Общие вопросы Javascript 15 08.04.2016 11:46
отправка данных в инпут через AJAX 2 imediasun1 Элементы интерфейса 1 30.01.2013 18:13
отправка данных в инпут через AJAX imediasun1 Элементы интерфейса 2 30.01.2013 18:06
Передача HTML кода на сервер через Ajax KomaLex AJAX и COMET 2 06.12.2012 15:28
кеширование HTML переданого через ajax BorisBritva jQuery 6 02.04.2011 01:23