チェックボックスの操作でsetValue(true)としてはいけない
勘違いしてた。
<?php ... $radioElement->setValue(true);
でチェックがオンになるんじゃないんだな。動いてたのは偶然。
flexy内部では
<?php // Element.php ... if ($this->attribute['value'] == $value){ $this->attribute['checked'] = true; }
という操作が行われている。
どういうことかと言うと、idでエレメントを判断できるにもかかわらず、setValue()の引数はvalue値と同じ値でないといけないのだ。
今までたまたま動いていたのは
<?php if ('radioValue' == true)
がtrueを返すからだ。普通にradioのvalueにテキストを入れていればsetValue()でtrueを設定しても問題ない。
問題が起こるのはradioのvalueで数値の0などを記述していた場合。
<?php if ('0' == true)
これはもちろんfalseになるので、checkedにならない。
なので、radioボタンに対するsetValue()はvalue値にするように統一した方がいいな。
どこを見てtrueを設定すると思ったんだろう・・。
もし
Nishimura's Site
ここを見て勘違いした人が居たらスミマセン・・。
検索で上位に出てくるようにしていたので、間違って覚えられていたら申し訳ないな。。
該当の部分はたった今直した。