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

时间:2019-08-30 13:32:37

标签: javascript jquery-select2 wicket

在检票口应用程序中,我使用Select2有两个依赖的下拉菜单。现在,我要设置两个下拉菜单的默认值。默认值应该是choiceList的第一个元素。 如果我从第一个下拉菜单中选择其他选项,则应该相应地更新第二个下拉菜单的默认值。

  1. 我使用过占位符,但没有成功。如何动态更新占位符值?
  2. 我尝试了以下代码,但第二个下拉列表的默认值不会自动更新。
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);
        }
    }

我是wicket框架的新手,所以请帮助我解决这个问题。

首先,两个下拉列表是从属下拉列表,如图enter image description here所示。第二个下拉列表的选择列表取决于第一个下拉列表的选择值。

0 个答案:

没有答案
相关问题