foreach内でのラジオボタン
レコード単位にラジオボタンを表示する(例1参照)際には
foreach内にラジオボタンを配置することになるが、
これがちょっと面倒になる。
(例1)
山田次郎
山田三郎
山田四郎
普通に記述してみる(例2参照)と・・。
(例2)
<table border="1" align="left"> <tr> <th>選択</th> <th>名前</th> </tr> <div id="aaaItems"> <tr> <td><span id="hoge"><input type="radio" name="hoge" /></span></td> <td><span id="name">name</span></td> </tr> </div> </table>
出力されたソースを見てみると例3の様になり、
ボタンの同期が取れず、意図した動きをしない・・(TДT)
(例3)
<input type="radio" name="XXXForm:aaaItems:0:hoge" value="0" /> <input type="radio" name="XXXForm:aaaItems:1:hoge" value="0" /> <input type="radio" name="XXXForm:aaaItems:2:hoge" value="0" /> <input type="radio" name="XXXForm:aaaItems:3:hoge" value="0" /> <input type="radio" name="XXXForm:aaaItems:4:hoge" value="0" />
_| ̄|○
なので結局力技(動的にラジオ部分のhtmlを出力)で対応することにした。
(注:te:escape="false"でエスケープを無効。
このタグを使うにはxmlns:te="http://www.seasar.org/teeda/extension"を定義する)
<table border="1" align="left"> <tr> <th>選択</th> <th>名前</th> </tr> <div id="aaaItems"> <tr> <td><span id="hogeString" te:escape="false">hogeString</span></td> <td><span id="name">name</span></td> </tr> </div> </table>
ホントはもっとスマートな方法があると思うので、
誰かわかる方は教えてください・・m(..)m
以上