0

我写了一个表格,但现在我收到了一个意外错误。

function showCompletePage(){
  var app = UiApp.getActiveApplication();
  app.getElementById('rightPanel').setVisible(false);
  var pnl = app.createVerticalPanel().setId('outro');
  var text = "<p>Uw aanvraag is met succes verwerkt.</p>";
  text += "<p>U zal zo meteen een offerte ontvangen via mail.<br />Verzeker u ervan dat de mail niet in uw spam toegekomen is.</p>";
  text += "<p>Gelieve de offerte binnen de drie dagen terug te sturen, zodat uw reservatie definitief bevestigd kan worden.</p>";
  pnl.add(app.createHTML(text).setId('final'));

  var el = app.createButton('Klik hier indien u nog een opleiding wil reserveren').setId('anotherOne');
  el.addClickHandler(app.createServerHandler("startAgain"));
  app.add(pnl);
  app.add(el);

  return app;
}

function startAgain(e){
  Logger.log('restart');
  var app = UiApp.getActiveApplication();
  app.getElementById('startAgain').setVisible(false);
  app.getElementById('outro').setVisible(false);
  buildUI();

  return app;
}

app.getElementById('outro').setVisible(false); 我已经发现当我在函数 startAgain() 中注释该行时不会出现错误

有人知道我在做什么错吗?

4

1 回答 1

1

我刚刚测试了你的确切代码,它在这里按预期工作......出于测试目的,我创建了一个显示另一个 UI 的 showCompletePage() 函数,我实际上可以从一个切换到另一个......所以也许错误存在于其他地方?在 showCompletePage 部分?

这是测试代码,你的部分没有改变:

function buildUI() {
  var app = UiApp.createApplication().setHeight(130).setWidth(400);
  app.setTitle("Search by name / lastname / adress");
  var panel = app.createVerticalPanel().setId('rightPanel');
  var txtBox = app.createTextBox();
  var label=app.createLabel(" Item to search for :")
  panel.add(label);
  txtBox.setId("item").setName("item");
  var label0=app.createLabel("Row").setWidth("40");
  var label1=app.createLabel("Name").setWidth("120");
  var label2=app.createLabel("Lastname").setWidth("120");
  var label3=app.createLabel("Street").setWidth("120");
  var hpanel = app.createHorizontalPanel();
  hpanel.add(label0).add(label1).add(label2).add(label3)
//
  var txt0=app.createTextBox().setId("lab0").setName("0").setWidth("40");
  var txt1=app.createTextBox().setId("lab1").setName("txt1").setWidth("120");
  var txt2=app.createTextBox().setId("lab2").setName("txt2").setWidth("120");
  var txt3=app.createTextBox().setId("lab3").setName("txt3").setWidth("120");
  var hpanel2 = app.createHorizontalPanel();
  hpanel2.add(txt0).add(txt1).add(txt2).add(txt3)
  var hidden = app.createHidden().setName("hidden").setId("hidden");
  var subbtn = app.createButton("next ?").setId("next").setWidth("250");
  panel.add(txtBox);
  panel.add(subbtn);
  panel.add(hidden);
  panel.add(hpanel);
  panel.add(hpanel2);
//
  var submitHandler = app.createServerHandler("showCompletePage");
  subbtn.addClickHandler(submitHandler);
  submitHandler.addCallbackElement(panel);
//
  app.add(panel);  
  ss.show(app);
  }
//
function showCompletePage(){
  var app = UiApp.getActiveApplication();
  app.getElementById('rightPanel').setVisible(false);
  var pnl = app.createVerticalPanel().setId('outro');
  var text = "<p>Uw aanvraag is met succes verwerkt.</p>";
  text += "<p>U zal zo meteen een offerte ontvangen via mail.<br />Verzeker u ervan dat de mail niet in uw spam toegekomen is.</p>";
  text += "<p>Gelieve de offerte binnen de drie dagen terug te sturen, zodat uw reservatie definitief bevestigd kan worden.</p>";
  pnl.add(app.createHTML(text).setId('final'));

  var el = app.createButton('Klik hier indien u nog een opleiding wil reserveren').setId('anotherOne');
  el.addClickHandler(app.createServerHandler("startAgain"));
  app.add(pnl);
  app.add(el);

  return app;
}

function startAgain(e){
  Logger.log('restart');
  var app = UiApp.getActiveApplication();
  app.getElementById('startAgain').setVisible(false);
  app.getElementById('outro').setVisible(false);
  buildUI();

  return app;
}
于 2012-05-22T16:02:43.933 回答