Apache Wicket。用单一的ajax请求更新多个FormComponents。

问题描述 投票:0回答:1

wicket表单流程为表单中的所有FormComponents执行转换、验证和模型更新。AjaxFormComponentUpdatingBehavior将为单个组件执行这个过程。我正在寻找的是一种方法来使用一个FormComponent上的事件来执行两个FormComponents的表单处理。

一个示例页面可能是这样的。

    <form wicket:id='form'>

        <label>Name</label>
        <input type='text' wicket:id='name'/>

        <label>Start Date</label>
        <input type='text' wicket:id='start'/>

        <label>End Date</label>
        <input type='text' wicket:id='end'/>

    </form>

当其中一个日期字段发生变化时,我想使用ajax对另一个字段进行验证,并更新两个模型,让表单中的所有其他组件单独运行。要做到这一点,转换、验证和模型更新必须发生在两个字段上。我还没有找到一种方法来使用一个单一的ajax事件来实现这一点。

有什么好办法吗?

wicket
1个回答
2
投票

解决你的问题的最直接的方法可能是将你的2个字段封装在一个简单的字符串中。嵌套式:

 <form wicket:id='form'>

    <label>Name</label>
    <input type='text' wicket:id='name'/>
       <form wicket:id='innerForm'>
         <label>Start Date</label>
         <input type='text' wicket:id='start'/>
         <label>End Date</label>

         <input type='text' wicket:id='end'/>
       </form>
</form>

比其中一个日期字段发生变化,只需通过AJAX提交(用AjaxFormSubmitBehavior)innerForm,并将你的验证逻辑应用于这两个字段.希望这能帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.