面板中有两个下拉菜单,但只想在选择第一个下拉菜单的值时启用第二个下拉菜单
Two drop-downs in a panel but want to enable the second one only when first drop-down's value is selected
有两个下拉选项可用。一个启用,另一个在启动时禁用。当第一个下拉菜单填满它的选择时,只有第二个下拉菜单将被启用。这应该使用 select2choice abstract class 或 ChoiceProvider
来完成
private static class ValueEditor extends Select2Choice<String> {
private static final long serialVersionUID = SingleFiniteValueEditor.serialVersionUID;
ValueEditor(String id, EditableSingleFiniteModel<?> model, ChoiceProvider<String> provider) {
super(id, model.valueModel(), provider);
setOutputMarkupId(true);
getSettings().setDropdownAutoWidth(true);
getSettings().setCloseOnSelect(true);
getSettings().setPlaceholder("");
getSettings().setAllowClear(!model.mandatory());
}
您可以通过定位第一个下拉菜单来使用 if else 语句,当有输入时,第二个下拉菜单会激活。这是一个例子:
if (combobox1.equals("yourChoice"))
{
combobox2.enable();
} else
{
combobox2.disable();
}
看看 Wicket 的例子:http://examples8x.wicket.apache.org/ajax/choice
源代码位于 Source code > ChoicePage
或 here
基本上你需要从
开始
models.setEnabled(false);
然后在 makes
有一个值时启用它:
makes.add(new AjaxFormComponentUpdatingBehavior("change")
{
@Override
protected void onUpdate(AjaxRequestTarget target)
{
models.setEnabled(makes.getModelObject() != null);
target.add(models);
}
});
只需要适配Select2组件即可。
有两个下拉选项可用。一个启用,另一个在启动时禁用。当第一个下拉菜单填满它的选择时,只有第二个下拉菜单将被启用。这应该使用 select2choice abstract class 或 ChoiceProvider
来完成private static class ValueEditor extends Select2Choice<String> {
private static final long serialVersionUID = SingleFiniteValueEditor.serialVersionUID;
ValueEditor(String id, EditableSingleFiniteModel<?> model, ChoiceProvider<String> provider) {
super(id, model.valueModel(), provider);
setOutputMarkupId(true);
getSettings().setDropdownAutoWidth(true);
getSettings().setCloseOnSelect(true);
getSettings().setPlaceholder("");
getSettings().setAllowClear(!model.mandatory());
}
您可以通过定位第一个下拉菜单来使用 if else 语句,当有输入时,第二个下拉菜单会激活。这是一个例子:
if (combobox1.equals("yourChoice"))
{
combobox2.enable();
} else
{
combobox2.disable();
}
看看 Wicket 的例子:http://examples8x.wicket.apache.org/ajax/choice
源代码位于 Source code > ChoicePage
或 here
基本上你需要从
开始models.setEnabled(false);
然后在 makes
有一个值时启用它:
makes.add(new AjaxFormComponentUpdatingBehavior("change")
{
@Override
protected void onUpdate(AjaxRequestTarget target)
{
models.setEnabled(makes.getModelObject() != null);
target.add(models);
}
});
只需要适配Select2组件即可。