NP_znItemFieldEX の改造メモ

多分HTML出力の部分だけメモしておく用のエントリ
NP_znItemFieldEX var0.1alpha



Checkbox の出力を「label要素の中にフォーム部品とラベルを配置」する記法に変更する。

まずオリジナルコード

                        case "Checkbox": //
                                $fsetting  = $this->preg_split_trim($row["fsetting"]);
                                $itemArray = $this->preg_split_trim($row_item["f__".$row["fname"]]);
                               
                                $i = 0;
                                foreach ($fsetting as $value){
                                        $checked = (in_array($value, $itemArray)) ? 'checked' : '';
                                        echo '<input type="checkbox" name="f__'.$row["fname"].$i.'" id="i'.$i.'" value="'.urlencode($value).'" '.$checked.' />';
                                        echo '<label for="i'.$i++.'">'.$value.'</label> ';
                                }
                                echo '<br />';
                                break;

改造後のコード

                        case "Checkbox": //
                                $fsetting  = $this->preg_split_trim($row["fsetting"]);
                                $itemArray = $this->preg_split_trim($row_item["f__".$row["fname"]]);
                               
                                $i = 0;
                                foreach ($fsetting as $value){
                                        $checked = (in_array($value, $itemArray)) ? 'checked="checked"' : '';
          //echo '<input type="checkbox" name="f__'.$row["fname"].$i.'" id="i'.$i.'" value="'.urlencode($value).'" '.$checked.' />';
          //echo '<label for="i'.$i++.'">'.$value.'</label> ';
                                        echo '<label>';
                                        echo '<input type="checkbox" name="f__'.$row["fname"].$i.'" value="'.urlencode($value).'" id="i'.$i++.'" '.$checked.' />';
                                        echo $value.'</label> ';
                                }
                                echo '<br />';
                                break;

znFieldEXのtype=Number にCSSのime-modeを適用し、jQuery Calculator(電卓のJavaScript)を実装

ime-modeの採用についてはFirefoxの個別記事アーカイブ Firefox 3 の修正内容のご紹介 その2 — IE 独自拡張 CSS: ime-mode プロパティのサポートを読んでおくこと。

まずオリジナルコード

                        case "Text":     //width
                        case "Number":   //width
                                echo '<input tabindex="'.$tabindex.'" type="text" name="f__'.$row["fname"].'" style="width: '.$row["fsetting"].
                        'px;" maxlength="255" value="'.htmlspecialchars($row_item["f__".$row["fname"]]).'" />';
                                break;

改造後のコード

                        case "Text":     //width
                                echo '<input tabindex="'.$tabindex.'" type="text" name="f__'.$row["fname"].'" style="width: '.$row["fsetting"].
                        'px;" maxlength="255" value="'.htmlspecialchars($row_item["f__".$row["fname"]]).'" />';
                                break;
                        case "Number":   //width
                                echo '<input tabindex="'.$tabindex.'" type="text" name="f__'.$row["fname"].'" style="width: '.$row["fsetting"].
                        'px;" class="znFEXinputTypeNum" maxlength="255" value="'.htmlspecialchars($row_item["f__".$row["fname"]]).'" />';
                                break;

追加するCSS

/* znFieldEX input type=text (number only field) */
.znFEXinputTypeNum {
        ime-mode: disabled;
        }

追加するJavaScript

jQuery(function(){
        $('.znFEXinputTypeNum').calculator();
});
/
Skooler Records

No comments yet

%3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%22%20%76%61%6c%75%65%3d%22%30%62%34%61%62%33%37%62%38%37%38%38%38%65%66%32%30%34%37%65%36%35%39%63%66%36%36%36%36%38%31%33%22%3e %3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%5f%68%61%73%68%22%20%76%61%6c%75%65%3d%22%63%63%62%30%65%32%32%39%38%36%36%33%37%32%32%30%61%32%36%63%65%32%32%31%36%34%37%63%65%31%39%63%22%3e
© 2006 – 2012 by Luvsic. Some rights reserved.