使用JavaScript在select2中设置依赖下拉列表的默认值

使用JavaScript在select2中设置依赖下拉列表的默认值,javascript,jquery-select2,wicket,Javascript,Jquery Select2,Wicket,在wicket应用程序中,我使用Select2有两个相关下拉列表。现在,我想设置两个下拉列表的默认值。默认值应为choiceList的第一个元素。 如果我从第一个下拉列表中选择了其他选项,则第二个下拉列表的默认值应相应更新 我使用了占位符,但没有成功。如何动态更新占位符值? 我尝试了下面的代码,但是第二个下拉列表的默认值没有自动更新。 我是wicket框架的新手,所以请帮助我解决这个问题 首先,两个下拉列表是相关下拉列表,如图所示。第二个下拉列表的选择列表取决于第一个下拉列表的选定值。两个相关下

在wicket应用程序中,我使用Select2有两个相关下拉列表。现在,我想设置两个下拉列表的默认值。默认值应为choiceList的第一个元素。 如果我从第一个下拉列表中选择了其他选项,则第二个下拉列表的默认值应相应更新

我使用了占位符,但没有成功。如何动态更新占位符值? 我尝试了下面的代码,但是第二个下拉列表的默认值没有自动更新。 我是wicket框架的新手,所以请帮助我解决这个问题


首先,两个下拉列表是相关下拉列表,如图所示。第二个下拉列表的选择列表取决于第一个下拉列表的选定值。

两个相关下拉列表?你能分享一张图片吗?请参考上面的链接和描述。
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(!model.choices().getObject().isEmpty()) {
                model.valueModel().setObject(model.choices().getObject().get(0));
            }
        }

        @Override
        protected void onInitialize() {
            super.onInitialize();
            add(new OnChangeAjaxBehavior() {
                private static final long serialVersionUID = SingleFiniteValueEditor.serialVersionUID;

                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                    target.add(getComponent().getParent());
                    target.prependJavaScript(JQuery.execute("$('#%s').select2('destroy');", getJquerySafeMarkupId()));
                    target.appendJavaScript(JQuery.execute("$('#%s').select2('focus');", getJquerySafeMarkupId()));
                    send(getComponent(), Broadcast.BUBBLE, new ValueChangedEvent());
                }
            });
            // FIXME append a class and style in stylesheet?
            add(AttributeModifier.append("style", "min-width:200px;"));
        }

        @Override
        protected void onComponentTag(ComponentTag tag) {
            tag.setName("select");
            super.onComponentTag(tag);
        }
    }