Сначало проверить форму а потом отправить

Статус
В этой теме нельзя размещать новые ответы.

designf

Постоялец
Регистрация
24 Май 2009
Сообщения
104
Реакции
8
Требуется помощь.

Суть следующая. Есть форма с двумя обязательными полями для заполнения. Если делать без ajax то все нормально, скрипт проверяет на заполнение. И если не заполнено, то не дает пойти на отправку.

Если использовать ajax то форма улетает. А мне нужно чтобы проверило и если поля не пустые, то отправить на выполнение.

Код

Код:
<script type="text/javascript">
    $(function() {

    $('#send_req').validate({
        rules: {
                name: 'required',
                phone: 'required'
            },
        submitHandler: function(form) {
            $(form).find('input[type="submit"]').attr('disabled', true);
            $(form).ajaxSubmit();
        }
    });
       
    $('#send_req').click(function() {
        $.ajax({
            type: "POST",
            url: 'send_request.php',
            data: {id: id },
            cache: false,
            beforeSend: function() { $('#send_req').html('<img src="../images/go.gif">'); },
            success: function(html) { $('#send_req').html(html); }
        });
        $("#help_content").hide("slow");
     });

        $('#help_close').click(function(){
    $('#help_content').slideUp();
    });
    $('#help_link').click(function(){
        $('#help_content').css('paddingBottom', '10px');
        $('#help_content').slideDown(700);
        $('#help_content').animate({paddingBottom:'0'}, 300);
    });
});
</script>

Т.е. проверяем форму #send_req с помощью плагина validate но это не помогает.
 
if($('#send_req').valid()){ отправляем форму }
 
Спасибо. А куда ставить?

Если так

Код:
    if($('#send_req').valid()) {   
    $('#send_req').click(function() {
        $.ajax({
            type: "POST",
            url: 'includes/ajax/send_request.php',
            data: {id: <? echo $f['selector'];?> },
            cache: false,
            beforeSend: function() { $('#send_req').html('<img src="../images/go.gif">'); },
            success: function(html) { $('#send_req').html(html); }
        });
        $("#help_content").hide("slow");
     });
     }

То ajax не работает идет обычная отправка.
 
Вообще я такие штуки делаю так:
Код:
$("#form").on('submit', function (e) {
  e.preventDefault();

  if (Form.validate($(this))) {
    $.ajax({}); // Отправляем
  }
  else {
    // Сообщаем об ошибках
  }
}

Так же в html5 появился аттрибут required у тега input. Он не даст отправить форму если поля с required будут пустые.
 
если мы живем в северной корее и у нас за спиной стоит автоматчик, то делаем так - используем required для обязательных полей + pattern в input + через js проверяем required и pattern + дублированная проверка на стороне сервера полученных данных... в итоге вражеский шпиён из южной корее не сможет обойти вашу форму в связи с тем, что объем кода вы увеличили на 2500%

upd: pattern'ы - обычные регулярки, к примеру номер телефона с кодом (###) ###-#### будет выглядеть вот так:
<input type="tel" id="phone" pattern="([0-9]{3}) [0-9]{3}-[0-9]{4}">
оставьте работу браузера - браузеру, если он это умеет делать. он умеет проверять формы на валидность, если ему сообщить условия. не надо ставить к нему за спину автоматчика с доп. 25кг кода брони
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху