2010-09-23 42 views
1

我試圖在頁面「[MyPage]」中使用模態窗口「[MW]」。如何管理包含表單的ModalWindow?

在[MyPage]中,有一個表格和一個div,其[MW]的檢票編號爲。 div不在[MyPage]中。 在[MW]中,有一種表單可以在其中執行搜索以從數據庫檢索信息。

事實是,我所有的表單在Firefox和Chrome中都能很好地工作。但在IE中,當我在[MyPage]中提交表單時,它顯示[MW]。

我不知道如何解決這個問題,因爲我已經分開了模態窗口和[MyPage]中的窗體。我嘗試過Javascript,比如onclick =「formInMyPage.submit()」,但它仍然不起作用。

+0

這是很難設想一個解決這個問題,沒有看到一些代碼。 – 2010-09-23 21:55:03

回答

0

對不起回答這麼晚,但我迷失在代碼中。我沒有寫,我仍然從Wicket開始。
我想從頭開始了,但我與我似乎無法理解的一個問題難倒...我創建了一個簡單的表格:

  • 一個序列號一個文本框
  • 一按鈕,打開模式窗口

打開和關閉該模式窗口不是硬的部分,但發送一個值從模態窗口,以便將其插入窗體幾乎是不可能的。

我也跟着在互聯網上幾乎完全教程,我不知道哪裏出了問題?
當測試我的代碼,這是我得到:

  • 我從選擇SERIALNUMBER modalWindow,我點擊「發送」按鈕。
  • 模式窗口關閉,但我的表單中的serialNumber字段未更新。
  • 我不知道發生了什麼,因爲當我設置這個serialNumber並在模態窗口中選擇另一個時,它的值將消失。

這裏是正規頁面

serialNumber = new TextField("serialNumber"); 
    modalMateriel = new ModalWindow("modalMateriel"); 


    modalMateriel.setContent(new ModalWindowMateriel(modalMateriel.getContentId()){ 
     public void onSave(AjaxRequestTarget ajaxRequestTarget){ 
      ajaxRequestTarget.addComponent(serialNumber); 
      modalMateriel.close(ajaxRequestTarget); 
     } 
    }); 


    modalMateriel.setInitialWidth(1000); 
    modalMateriel.setWidthUnit("px"); 
    modalMateriel.setInitialHeight(450); 
    modalMateriel.setHeightUnit("px"); 
    modalMateriel.setTitle(getString("ManageRMA_modal_materiel_title")); 
    modalMateriel.setCssClassName(ModalWindow.CSS_CLASS_GRAY); 
    addOrReplace(modalMateriel); 


    serialNumber.setEnabled(false); 
    serialNumber.setOutputMarkupId(true); 
    form.addOrReplace(serialNumber); 


    form.addOrReplace(new AjaxLink("showModalMaterielButton") { 
      @Override 
      public void onClick(AjaxRequestTarget ajaxRequestTarget){ 

       ajaxRequestTarget.appendJavascript("Wicket.Window.unloadConfirmation = false;"); 
       modalMateriel.show(ajaxRequestTarget); 
      } 
     }.setVisible(true)); 

這裏是一些代碼是modalwindow

private String serialNumberRecherche; 

public ModalWindowMateriel(String id){ 
    super(id); 

    Form form = new Form("formMaterielsConsultation"); 
    List<String> list = new ArrayList<String>(); 
    list.add("1"); 
    list.add("11"); 
    list.add("111"); 
    list.add("1111"); 
    list.add("11111"); 
    form.addOrReplace(new DropDownChoice("serialNumberRecherche",new PropertyModel(this,"serialNumberRecherche"),list)); 


    //The submit button which aim is ti upDate "serialNumber" in the formal page 
    AjaxButton button = new AjaxButton("Envoyer"){ 

     protected void onSubmit(AjaxRequestTarget ajaxRequestTarget, Form form) { 
      onSave(ajaxRequestTarget); 
     } 
    }; 

    form.add(button); 
    add(form); 

} 


public abstract void onSave(AjaxRequestTarget ajaxRequestTarget); 

public String getSerialNumberRecherche() { 
    return serialNumberRecherche; 
} 

public void setSerialNumberRecherche(String serialNumberRecherche) { 
    this.serialNumberRecherche = serialNumberRecherche; 
} 
相關問題