[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 メーリングリストの案内