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()関数を作成し、実際にあるUIから別のUIに切り替えることができます...おそらくエラーは別の場所にありますか? 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 に答える