2013-08-01 3 views
1

У меня есть развернутая в Интернете форма, написанная в 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; 
} 
+0

Просьба представить более подробную информацию, отредактировав ваш вопрос. Используете ли вы UiService или HtmlService? Включение некоторых существующих кодов поможет. – Mogsdad

+0

@villager - Вы видели это сообщение (и ссылки, которые он содержит) http://stackoverflow.com/questions/17620836/create-a-new-page-in-a-form-dynamically-based-on-data- оф-предыдущая-страницы.? –

+0

@Sergeinsas, спасибо, но, боюсь, я до сих пор не понимаю. Мне не нужно вызывать другую функцию, просто повторно используйте doGet. – mrfinnsmith

ответ

0

Я думаю, вы просто добавить неправильный элемент пользовательского интерфейса приложения в вашем doPost. Вместо

app.add(app.getElementById('formContent'));

использование

app.add(app.getElementById('mainForm'));

+0

Спасибо, но это, похоже, не решает проблему. – mrfinnsmith