[Seasar-user:2699] Re: [S2JSF]ラジオボタン+ラベルについて
"Kenichi Shinoda :: 篠
"Kenichi Shinoda :: 篠
2005年 10月 17日 (月) 18:56:30 JST
松尾さん、米林さん、ひがさんアドバイスありがとうございます。
> コンポーネントのid属性を指定すると、レンダリング時に「formのid+コンポーネントid」になります。
> これはS2JSF(もしくはmyfacesだかJSF)の仕様なのでこれでまずいのであればrendererを修正する必要があります。
はい、「formのid+コンポーネントid」となるのはよいのですが、
それぞれの<input type="radio">に個別にIDを設定できないかと思いまして。onfocusなども
個別に。
name属性しか出力されず、IDが消えてしまいますしonfocusなどもうまく出力されません。
> > 加えて、onfocus、onblur属性が消えないようにできないのでしょうか?
> 以下のように記述すれば可能です。
> <span m:inject="s:selectOneRadio" m:value="#{hoge.radio}"
> m:onfocus="colorOn(this);" m:onblur="colorOff(this);">
> <input type="radio" value="1">
> </span>
以前、↑を試しましたが、どこにも出力されませんでした。・・。
S2JSFとしては
<span m:inject="s:selectOneRadio2" id="sex" m:label="性別" m:value="#{karteMaintainDto.sex}" m:required="true" m:onfocus="colorOn(this);" m:onblur="colorOff(this);">
<input type="radio" id="male" name="sex" value="0" class="radio" onfocus="colorOn(this);" onblur="colorOff(this);" />
<label m:for="mainform:sex" for="male">男</label>
<input id="female" type="radio" name="sex" value="1" class="radio" onfocus="colorOn(this);" onblur="colorOff(this);" />
<label m:for="mainform:sex" for="female">女</label>
</span>
としましたが
<input type="radio" name="mainform:sex" value="0"/>
<label for="mainform:sex">男</label>
<input type="radio" name="mainform:sex" value="1"/>
<label for="mainform:sex">女</label>
となってしまいます。
これでは、ID属性がないですし、label の for属性による、ラベルクリック時
のラジオボタン選択動作がうまくいきません。
理想は
<input type="radio" id="mainform:male" name="mainform:male" value="0" onfocus="colorOn(this);" onblur="colorOff(this);"/>
<label for="mainform:male">男</label>
<input type="radio" id="mainform:female" name="mainform:female" value="1" onfocus="colorOn(this);" onblur="colorOff(this);"/>
<label for="mainform:female">女</label>
と出力したいと考えていました。
> 補足&今更ですが下記の場合は、id名は変更されずに出力されます。
> <input type="hidden" id="hoge" name="hoge" m:value="xxx"
> m:passthrough="true"/>
いまだ、m:passthrough="true"を駆使した上手な使い方をいまいち理解できてい
ないようです。
rendererの修正を行わないと実現できないようであれば、ラジオボタンでの
onfocus,onblurや、<label> を使った親切処理は見送ることにします。
「[Seasar-user:2527] [S2JSF] ラジオボタンのグルーピング」の過去ログは一
応読んでみたんですが、もう一度読み直し、m:passthrough="true"を駆使してで
きないか考えてみます。
============
メーリングリスト上のお宝TIPS情報をS2JSF,S2DAOなどカテゴリ毎に
簡単に検索できるといいなーと思ってしまいます。
Seasar-user メーリングリストの案内