idとname属性を両方有効にした場合に同じ値を設定できるようにした
なんでHTML_Template_Flexyでid属性を読み取るように改造したのか忘れてしまった。
当時日記に書いてたよなーと思って検索してみるとやっぱり書いてた。
こういうとき日記に自分用メモがあると考え方が分かって便利。
○○前のコードは他人のコード。と同じように、○○前の考え方は他人の考え方、だ。
http://d.hatena.ne.jp/katase_n/20051026
フォームが2つ以上ある場合、nameが同じものが複数有る場合だとエラーになるからidで区別したい。
あぁそうか。
ログインフォームと登録フォームを同じページに配置した場合、name="mail" とかがかぶるからか。
今作ってるページは無意識にname属性を別の値にしていた・・。
でもこの仕様だと不都合だということに気付いた。
<form name="login" action="login.php"> <input type="text" name="mail" id="loginMail"> <input type="submit" value="login"> </form> <form name="regist" action="regist.php"> <input type="text" name="mail" id="registMail"> <input type="submit" value="regist"> </form>
このようにすれば確かに同じname属性値を使ってもエラーは出なくなったんだけど、リクエストパラメータがmailで来てるのにflexyではloginMailやregistMailで識別されるから初期値の設定がややこしくなる。
なのでここはname属性値をloginMailのようにするのが吉だと思った。
一番の問題は name="mail" id="mail" としたときにエラーが出ていたこと。これは考え方をミスっていただけなので直したんだが・・結局idはradioとcheckboxのみ解析するデフォルトの動作に戻した方が使いやすいのかも。
idはjavascriptで使うんだよね。だからflexyで操作する識別子としてはidを使いたくなくなってきた。
あの頃はバージョン管理をやってなかったので元に戻すのは手作業になるな・・。まぁテキストボックスを複数配列にまとめたいときがあるかもしれないから残しておいてもいいか。