Browse Source

add optgroup=true attribute to multi-select web component

221V 1 year ago
parent
commit
3c840eae66
2 changed files with 7 additions and 1 deletions
  1. 1 1
      include/nitro.hrl
  2. 6 0
      src/elements/element_select.erl

+ 1 - 1
include/nitro.hrl

@@ -64,7 +64,7 @@
 -record(option,   {?ELEMENT_BASE(element_select), disabled = [], label = [], selected = false, value = []} ).
 -record(output,   {?ELEMENT_BASE(element_output), for, form, name} ).
 -record(progress, {?ELEMENT_BASE(element_progress), max = [], value = []} ).
--record(select,   {?ELEMENT_BASE(element_select), multi_select = false, autofocus = [], disabled = [], form = [], multiple = [], name = [], required = [], size = []} ).
+-record(select,   {?ELEMENT_BASE(element_select), multi_select = false, optgroup = [], autofocus = [], disabled = [], form = [], multiple = [], name = [], required = [], size = []} ).
 -record(textarea, {?ELEMENT_BASE(element_textarea), autofocus = [], cols = [], dirname = [], disabled = [], form = [], maxlength, name, placeholder, readonly = [], required = [], rows = [], wrap = [], value = []} ).
 
 %% HTML Form inputs

+ 6 - 0
src/elements/element_select.erl

@@ -33,6 +33,12 @@ render_element(Record = #select{}) ->
     {<<"name">>, Record#select.name},
     {<<"onchange">>, Record#select.onchange},
     {<<"title">>, Record#select.title},
+    {<<"optgroup">>,
+       case (Record#select.multi_select =:= true andalso Record#select.optgroup =:= true) of
+         true -> <<"true">>;
+         _ -> []
+       end},
+    
     {<<"required">>,
        case Record#select.required of
          true -> <<"required">>;