Как сбросить форму ПОСЛЕ ее подачи - PullRequest
0 голосов
/ 14 марта 2019

Следующий код запускается, когда пользователь отправляет форму.После проверки количества отправленных форм (пользователь может отправить только 5 раз), форма записывается на стороне сервера в листе Google.

function validateForm(form){   
    if(count>=MAX){
        var msg={
            title:"Idea limit reached",
            body:"You can propose a maximum of "+MAX+" ideas for this theme",
            btn:"OK"
        }
        screenMessage(msg)
    }
    else{
        var msg={
            title:"Idea recorded",
            body:"You can still submit "+(5-count-1)+" ideas",
            btn:"OK"
        }
        google.script.run.withSuccessHandler(successMessage(msg), resetForm()).recordIdea(form)    
        count++
    }
    return false;  
  }
function resetForm(){
    $('#title').val("")
    $('#description').val("")
    $('input[name="tags"]').val("")
    $('.creation-tags').empty()
    $('.suggested-tags').empty();
}

Моя проблема в том, что когда я проверяю базу данных, введенная мною информация пуста!Значение функции «resetForm» на самом деле называется ДО отправки формы.

Есть ли способ гарантировать, что функция resetForm вызывается только после того, как введенные пользователем значения были успешно отправлены?

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

1 Ответ

1 голос
/ 14 марта 2019

Эта строка кода вызывает метод resetForm () сразу, а не устанавливает функцию обратного вызова:

google.script.run.withSuccessHandler(successMessage(msg), resetForm()).recordIdea(form)

Это должно выглядеть так:

google.script.run.withSuccessHandler(function(){successMessage(msg), resetForm()}).recordIdea(form)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...