У меня есть развернутая в Интернете форма, написанная в Google Apps Script с doGet и doPost. В doPost код проверяет правильность заполнения пользователем формы (например, не оставляя определенные вещи пустым). Если нет, в нем освещаются вещи, которые необходимо исправлять, и добавляет предупреждающую метку. Если все в порядке, оно записывает данные формы в электронную таблицу.doPost Дважды в скрипте Google Apps?
Проблема в том, что doPost не может быть вызван снова, если пользователь исправляет проблемы.
Любые мысли? Благодаря!
EDIT: Я использую UiService EDIT: Вот очень упрощенная версия приложения:
function doGet(e) {
var app = UiApp.createApplication();
var mainForm = app.createFormPanel().setId('mainForm');
var formContent = app.createVerticalPanel().setId('formContent');
var userName = app.createTextBox().setId('userName').setName('userName');
var passport = app.createFileUpload().setName('passport');
var submitButton = app.createSubmitButton('submit here');
var submitButtonWarning = app.createLabel('Something is wrong.').setId('submitButtonWarning')
.setVisible(false);
formContent
.add(userName)
.add(passport)
.add(submitButton)
.add(submitButtonWarning);
mainForm.add(formContent);
app.add(mainForm);
return app;
}
function doPost(e) {
var app = UiApp.getActiveApplication();
var userName = e.parameter.userName;
var passport = e.parameter.passport;
if (userName == 'no') {
app.getElementById('submitButtonWarning').setVisible(true);
app.add(app.getElementById('formContent'));
return app;
} else {
app.getElementById('submitButtonWarning').setVisible(false);
app.add(app.getElementById('formContent'));
return app;
}
return app;
}
Просьба представить более подробную информацию, отредактировав ваш вопрос. Используете ли вы UiService или HtmlService? Включение некоторых существующих кодов поможет. – Mogsdad
@villager - Вы видели это сообщение (и ссылки, которые он содержит) http://stackoverflow.com/questions/17620836/create-a-new-page-in-a-form-dynamically-based-on-data- оф-предыдущая-страницы.? –
@Sergeinsas, спасибо, но, боюсь, я до сих пор не понимаю. Мне не нужно вызывать другую функцию, просто повторно используйте doGet. – mrfinnsmith