2010-09-23 48 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; 
} 
相关问题