Смена значения поля формы после отправки

Тема в разделе "JavaScript", создана пользователем SocMaster, 2 дек 2015.

Модераторы: ZiX
  1. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Суть в том что отправляем форму, ловим событие, получаем новое значение одного из новых полей и тогда только отправляем форму куда надо уже
    HTML:
    $( document ).ready(function() {
            $( "#form_cash" ).submit(function( event ) {
                event.preventDefault();
                $.post("<?=$link_cabinet;?>", $("#form_cash").serialize(),function(key) {
                    $("#ik_sign").val(key);
                });
                this.submit();
            });
        });
    Такой код не работает =(
    Поле не изменяется, но форма отправляется
     
  2. warg

    warg Постоялец

    Регистр.:
    26 июн 2007
    Сообщения:
    122
    Симпатии:
    122
    ajax выполняется асинхронно и форма отправляется быстрее чем приходит ответ и меняется поле, submit надо перенести в done функцию.
    то есть как-то так
    Код:
    $.post("<?=$link_cabinet;?>", $("#form_cash").serialize(),function(key) {
         $("#ik_sign").val(key);
         $("#form_cash").submit();
    });
    
     
    SocMaster нравится это.
  3. BioNicle

    BioNicle Постоялец

    Регистр.:
    15 июн 2012
    Сообщения:
    52
    Симпатии:
    11
    Либо допиши async: false, и таймаут, да это не молодежно, но порой нужно )) Дописывать куда параметры перед сендом )
     
  4. qaz123

    qaz123 Писатель

    Регистр.:
    9 сен 2013
    Сообщения:
    4
    Симпатии:
    0
    Да, async: false, и таймаут это будет хорошее дополнение