wicket是否在通过JavaScript重新排列后失去了对HTML组件的控制?

wicket是否在通过JavaScript重新排列后失去了对HTML组件的控制?,wicket,Wicket,我在wicked中有一个重复组件,需要根据用户需求进行添加和删除。组件的最大数量是预定义的。因此,我在启动时添加组件,并根据需要隐藏和显示。当删除组件时,我需要更改HTML标记中组件的排列。我使用JavaScript来实现这一点。我想知道如果我这样做wicket是否会失去对组件的控制 <div wicket:id="borrowerTabs" id="borrowerTabs"> <span wicket:id="borrowerTab1" id="borrowerTa

我在wicked中有一个重复组件,需要根据用户需求进行添加和删除。组件的最大数量是预定义的。因此,我在启动时添加组件,并根据需要隐藏和显示。当删除组件时,我需要更改HTML标记中组件的排列。我使用JavaScript来实现这一点。我想知道如果我这样做wicket是否会失去对组件的控制

<div wicket:id="borrowerTabs" id="borrowerTabs">
    <span wicket:id="borrowerTab1" id="borrowerTab1" ></span>
    <span wicket:id="borrowerTab2" id="borrowerTab2" ></span>
    <span wicket:id="borrowerTab3" id="borrowerTab3" ></span>
    <span wicket:id="borrowerTab4" id="borrowerTab4" ></span>
    <button wicket:id="addBorrower" id="addBorrower" type="button"></button>
    <button wicket:id="deleteBorrower" id="deleteBorrower" onclick="updateUIForDeleteBorrower()" type="button"></button>
</div>

如果删除借款者AB3,借款者AB4中的内容将替换借款者AB3中的内容,并且模型对象也将被交换,尽管我没有执行target.add借款者AB3。现在,在提交表单时,我没有得到借词tab3中字段的值

我不确定它是否有用,但请在java代码中尝试component.setVisiblefalse来隐藏它。

这并不能真正回答您的问题,因此我将其添加为注释。我认为列表编辑器wicket组件比JavaScript更适合您的需要。请参阅本教程,了解如何构建一个:注意:上次使用时,我不得不对代码进行一些更改,但一般来说,这种方法对于动态列表编辑器非常有效。如果从DOM中删除节点,调用target.addcomponent wicket时将失败,因为AJAX无法找到您在标记中指定的元素,但是,如果您删除借用器tab3的子节点,例如JQuery.empty,它将起作用,希望如此helps@osdamv:我正在替换wicket侧的子节点和。例如,假设我正在删除借款者AB3,我将借款者AB3的子节点替换为借款者AB4的子节点。在wicket端,我得到了借款者AB4的模型对象,并将其分配给借款者AB3的模型。我并没有在整个过程中使用target.addcomponent。我已经厌倦了向borrowerTabs添加AjaxBehavior,然后从Javascript调用它了吗?您可以将从js中删除的选项卡的markupid传递给wicket,并适当地更新借用者选项卡的组件模型。@drobson:是的,我知道我当前在哪个选项卡中,因此我知道我正在删除哪个选项卡。正如我在调试时看到的那样,模型已正确更换。但是当我提交表单时,字段中的输入不会反映在模型对象中。