Wicket 如何管理包含表单的ModalWindow?

Wicket 如何管理包含表单的ModalWindow?,wicket,Wicket,我试图在页面“[MyPage]”中使用modalwindow“[MW]” 在[MyPage]中,有一个表单和一个div具有[MW]的wicket id。div不在[MyPage]格式内。 在[MW]中,有一种形式,我可以通过搜索从数据库中检索信息 事实上,我的所有表单都在Firefox和Chrome中运行良好。但在IE中,当我在[MyPage]中提交表单时,它会显示[MW] 我不知道如何解决这个问题,因为我已经在[MyPage]中分离了modalWindow和表单。我尝试过类似onclick=“

我试图在页面“[MyPage]”中使用modalwindow“[MW]”

在[MyPage]中,有一个表单和一个
div
具有[MW]的wicket id。
div
不在[MyPage]格式内。 在[MW]中,有一种形式,我可以通过搜索从数据库中检索信息

事实上,我的所有表单都在Firefox和Chrome中运行良好。但在IE中,当我在[MyPage]中提交表单时,它会显示[MW]


我不知道如何解决这个问题,因为我已经在[MyPage]中分离了modalWindow和表单。我尝试过类似onclick=“formimypage.submit()”的Javascript,但它仍然不起作用。

很抱歉这么晚才回答,但我在代码中迷失了方向。不是我写的,我还是从Wicket开始。
我想从头开始,但我被一个我似乎无法理解的问题难住了。。。我创建了一个简单的表单:

  • 序列号的文本字段
  • 打开modalWindow的按钮
打开和关闭modalWindow并不是最难的部分,但是从modalWindow发送一个值以将其插入表单几乎是不可能的

我几乎完全遵循了互联网上的教程,我不知道哪里出错了…
测试代码时,我得到的结果如下:

  • 我从modalWindow中选择一个序列号,然后单击“发送”按钮
  • modalWindow关闭,但我表单中的serialNumber字段未更新
  • 我不知道发生了什么,因为当我设置这个序列号并在modalWindow中选择另一个序列号时,它的值消失了
下面是正式页面中的一些代码

    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;
}
私有字符串serialnumbercherche;
公共ModalWindowMaterials(字符串id){
超级(id);
表格=新表格(“表格材料咨询”);
列表=新的ArrayList();
列表。添加(“1”);
列表。添加(“11”);
列表。添加(“111”);
列表。添加(“1111”);
列表。添加(“11111”);
form.addOrReplace(新的下拉选择(“serialNumberRecherche”,新属性模型(“serialNumberRecherche”),列表);
//提交按钮的目标是在正式页面中更新“序列号”
AjaxButton=新的AjaxButton(“特使”){
提交时受保护的无效(AjaxRequestTarget AjaxRequestTarget,表单){
onSave(ajaxRequestTarget);
}
};
表单添加(按钮);
添加(表格);
}
保存上的公共摘要无效(AjaxRequestTarget AjaxRequestTarget);
公共字符串getSerialNumberRecherche(){
返回serialnumberrechercher;
}
public void setSerialNumberRecherche(字符串serialNumberRecherche){
this.serialNumberRecherche=serialNumberRecherche;
}

在没有看到一些代码的情况下,很难考虑解决此问题的方法。