簡體   English   中英

面板中有兩個下拉列表,但僅在選擇第一個下拉列表的值時才希望啟用第二個下拉列表

[英]Two drop-downs in a panel but want to enable the second one only when first drop-down's value is selected

有兩個下拉選項可用。 一個啟用,另一個在啟動時禁用。 當第一個下拉列表填滿它的選擇時,將只啟用第二個下拉列表。 這應該使用 select2choice 抽象類或 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這里

基本上你需要從

models.setEnabled(false);

如果makes具有值,則啟用它:

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

您只需要將其調整為 Select2 組件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM