面板中有两个下拉菜单,但只想在选择第一个下拉菜单的值时启用第二个下拉菜单

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 > ChoicePagehere

基本上你需要从

开始
models.setEnabled(false);

然后在 makes 有一个值时启用它:

makes.add(new AjaxFormComponentUpdatingBehavior("change")
    {
        @Override
        protected void onUpdate(AjaxRequestTarget target)
        {
            models.setEnabled(makes.getModelObject() != null);
            target.add(models);
        }
    });

只需要适配Select2组件即可。