Wicket版本:1.6.11
假设我在动态向导页面上有一个Textfield
组件,它启用了Ajax。当我点击该组件时,我想禁用向导按钮栏上的“下一步”按钮,直到用户点击回车键。
在浏览各种向导类的代码 - WizardButtonBar
等之后,我认为这不可能通过向导按钮的标准实现来实现。
在这里提出问题的可能性是,如果我错了,有人可以纠正我,或者为上述内容提出替代方案。
答案 0 :(得分:0)
您的WizardStep可以使用#setComplete()/#isComplete()来控制是否启用了下一个按钮。
在textField上使用AjaxFormComponentUpdatingBehavior,在#onUpdate()中将整个向导添加到AjaxRequestTarget,以便更新向导的按钮。
答案 1 :(得分:0)
为了其他需要帮助的人的利益。这就是我做的。在我的包含TextField的类中,我传入了向导模型,该模型包含对各种组件的引用,例如向导表单。使用这个我可以获得默认向导按钮,并将其设置为启用或不可见。
Component label = new TextField<String>("paramText", new PropertyModel<String>(model, valueProperty));
label.add(new AjaxFormComponentUpdatingBehavior("onchange") {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(final AjaxRequestTarget target) {
Form wizardForm = wizardModel.getWizard().getForm();
Button nextButton = (Button)wizardForm.getDefaultButton();
nextButton.setVisible(false);
target.add(nextButton);
target.add(wizardForm);
target.add((Wizard)wizardModel.getWizard());
target.add(containerPanel);
}
});