-
Type: Bug
-
Resolution: Fixed
-
Priority: Major
-
Affects Version/s: 1.0.14
-
None
-
Environment:S2JSF1.0.14
Seasar2.3.8
<select>タグ(select-one、multipleいずれも)の<option>要素を静的に指定した場合は
値を選択した場合にvalidateが呼ばれます。しかし、
動的に指定した場合は値の選択にかかわらずvalidateが呼ばれません。
これも仕様でしょうか。
exampleのvalidator.htmlの「to」を
a)
<select id="to" m:label="To" multiple="multiple"> <span m:inject="s:validator" m:binding="#{greaterEqualValidator}" m:targetId="from"/> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select>
このようにした場合は値が選択した場合S2GreaterEqualValidator#validateが呼ばれます。
b)
<select id="to" m:label="To" m:value="#{selectManyListboxDto.bbb}" m:items="#{selectManyListboxBbbItems}" multiple="multiple"> <span m:inject="s:validator" m:binding="#{greaterEqualValidator}" m:targetId="from"/> </select>
このようにした場合は値の選択にかかわらずS2GreaterEqualValidator#validateが呼ばれません。
現在、複数の入力項目のうち1つ以上に入力があればOK、1つも入力がなければNGというバリデータを
作成したのですが、上記が原因で要件を満たすことができません。
特に<select>タグの<option>要素を動的に指定した場合にvalidateが呼ばれないというのは厳しいです。
上記1,2のケースでvalidateが呼ばれて欲しいのですがどうでしょうか。