Browse Source

fix 2 empty string value option

221V 1 year ago
parent
commit
c5f1bba9e6
1 changed files with 10 additions and 9 deletions
  1. 10 9
      src/render/wf_tags.erl

+ 10 - 9
src/render/wf_tags.erl

@@ -20,27 +20,28 @@
 
 
 emit_tag(TagName, Props) ->
-  [<<"<">>, TagName] ++ write_props(Props) ++ [<<"/>">>].
+  [<<"<">>, TagName] ++ write_props(TagName, Props) ++ [<<"/>">>].
 
 emit_tag(TagName, C, Props) when C == undefined orelse C == [[]] orelse C == [undefined] ->
   emit_tag(TagName, [], Props);
 emit_tag(TagName, C, Props) when (C == [] orelse C == <<>>) and ?VOID(TagName) ->
   emit_tag(TagName, Props);
 emit_tag(TagName, [], Props) ->
-  [<<"<">>, TagName, write_props(Props), <<">">>, <<"</">>, TagName, <<">">>];
+  [<<"<">>, TagName, write_props(TagName, Props), <<">">>, <<"</">>, TagName, <<">">>];
 emit_tag(TagName, Content, Props) ->
-  [<<"<">>, TagName, write_props(Props), <<">">>, Content,<<"</">>, TagName, <<">">>].
+  [<<"<">>, TagName, write_props(TagName, Props), <<">">>, Content,<<"</">>, TagName, <<">">>].
 
+write_props(TagName, Props) -> [ display_property(TagName, Prop) || Prop <- Props].
 
-write_props(Props) -> lists:map(fun display_property/1, Props).
-
-display_property({_, undefined}) ->
+display_property(_, {_, undefined}) ->
   [];
-display_property({Id, []}) when (Id =/= <<"value">>) andalso (Id =/= <<"disabled value">>) andalso (Id =/= <<"selected value">>) andalso (Id =/= <<"selected disabled value">>) -> %% fix empty string value option
+display_property(TagName, {Id, []}) when TagName =/= <<"option">> orelse
+((Id =/= <<"value">>) andalso (Id =/= <<"disabled value">>) andalso
+(Id =/= <<"selected value">>) andalso (Id =/= <<"selected disabled value">>)) -> %% fix empty string value option
   [];
-display_property({Id, Value} = P) when (Id == <<"class">> andalso (erlang:is_list(Value) andalso erlang:is_atom(hd(Value)))) orelse Id == <<"data-toggle">> ->
+display_property(_, {Id, Value} = P) when (Id == <<"class">> andalso (erlang:is_list(Value) andalso erlang:is_atom(hd(Value)))) orelse Id == <<"data-toggle">> ->
   prop(P);
-display_property({Prop, Value}) -> [<<" ">>, nitro:to_binary(Prop), <<"=\"">>, nitro:to_binary(Value), <<"\"">>].
+display_property(_, {Prop, Value}) -> [<<" ">>, nitro:to_binary(Prop), <<"=\"">>, nitro:to_binary(Value), <<"\"">>].
 
 prop({Id, Value}) when erlang:is_atom(Value) ->
   [<<" ">>, Id, <<"=\"">>, nitro:to_binary(Value), <<"\"">>];