jQuery отправить форму при успешном завершении

#jquery #forms

#jquery #формы

Вопрос:

Я вызываю функцию стороннего API в событии нажатия кнопки.

Смотрите ниже, tp.Callфункция, которая находится при нажатии кнопки, только при успешном завершении я хочу сохранить res.myNum в скрытом поле и отправить форму.

Часть, в которой я запутался, заключается в том, где написать или расширить (.success(functionOne)), чтобы у меня был код для отправки формы.

 $('[button1]').on('click', function () {
    var getdatafrom = {
        param1: $('input:text').val()
    };

    tp.callFunction(getdatafrom)
    .success(functionOne)
    .error(functionFail);
    return false;
});

function functionOne(res) {
    alert("Sample: "   res.myNum);
};

function functionFail(res) {
    alert("Error: "   res.errormessage);
};
  

Я знаю, что мы можем сделать это в .ajax post, как показано ниже

 $.ajax({ 
        data: { 'field1' : email  },
        type: 'GET', 
        dataType: 'json',
        url: 'url.php',
        beforeSend : function(){   },
        success: function(answer){   
            if(answer.error === false){
                   $('#greatForm').attr('validated',true);
                   $('#greatForm').submit();
            } 
            if(answer.error === true){
                //display the errors
            }
        }
     });
  

Комментарии:

1. Если вы знаете, как это сделать в анонимной функции, разве это не будет точно так же в именованной функции?

Ответ №1:

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

 function functionOne(res) {
    $('#idOfYourHiddenField').val(res.myNum);
    $('#greatForm').submit();
};
  

Я уверен, что функция functionOne вызывается правильно после успешного выполнения вашего стороннего API.