2010年5月アーカイブ

入力フォーム作ってて、確認画面用意したとき 「確認画面で不備に気づき、戻って修正するときに、メンドクサイからリセットボタン押して新規に入力しなおす。」 正直こんな操作する人は稀なのですが、そうしてくださいとの要望でしたので、そうしてみることに。 「リセットボタン置いとけばいい」ということで
 <input type="reset" name="Submit" value="リセット"> 
で済めばいいのですが リセットボタンは「初期値に戻す(リセットする)」とのことなので 最初に入力画面を開いた時には「初期値」は未入力の状態だから見た目上リセットされて 確認画面から戻ってきた時は既に値が入ったときが「初期値」になってしまうので、リセットボタンを連打してもダメなんですね;; んで「リセット」じゃなくて「クリア」する方法はWebクリエーターのひとりごとさんの方法が簡単でした
function clearFormAll() {
    for (var i=0; i<document.forms.length; ++i) {
        clearForm(document.forms[i]);
    }
}
function clearForm(form) {
    for(var i=0; i<form.elements.length; ++i) {
        clearElement(form.elements[i]);
    }
}
function clearElement(element) {
    switch(element.type) {
        case "hidden":
        case "submit":
        case "reset":
        case "button":
        case "image":
            return;
        case "file":
            return;
        case "text":
        case "password":
        case "textarea":
            element.value = "";
            return;
        case "checkbox":
        case "radio":
            element.checked = false;
            return;
        case "select-one":
        case "select-multiple":
            element.selectedIndex = 0;
            return;
        default:
    }
}  

で、呼び出すときはリセットじゃなくて(resetボタンにしてしまうとクリアした後にリセットしてしまうようで;結果値が残ってしまいます;)「button」としてonClickイベントのときに、先の「clearFormAll」関数を読んであげるといいです。
<input type="button" value="リセット" onClick="clearFormAll(); "/>
が・・・ MODxで携帯の時にページを変換するプラグインなんかを入れていると、javascript効かないブラウザ用に「reset」ボタンでないと不都合な時もあるので
<input type="reset" value="リセット" onClick="return clearFormAll(); "/>
の様に、呼び出すときに返り値を貰うようにして、とりあえず「false」を返してあげると、「reset」の挙動をやめさせる事が出来ます。 javascriptが処理できるブラウザだと、javascriptでフォームの値をクリアしてリセットはしない。 javascriptが処理できないブラウザだと、javascriptは無視して本来のresetの挙動になります。 ただ問題はjavascriptが処理できないブラウザに関してはresetが出来るが値のクリアが出来ないこと; 何か上手い方法がないもんですかね; あとフォームのリセットボタンは、入力項目が多いときなんか間違って押しちゃうと本当に泣けてきますね;
ご無沙汰です、何とか生きてます;; 今年度から週4日学校で講義が入ってるのでなかなか家で仕事する時間が少なくなってきました(ハプハプ;) んで「MODx」で仕事する機会が多くなってきたのですが、フォームを扱うスニペットで「cfFormMailer」というものがあるのですが、日本語も使えて超便利です^^ (MODxに同梱されているeFormも便利ですが確認画面が出ないので困り者) んで、いろいろと設定してたんですが、ふと確認画面に飛んで戻ってきた時にテキストエリアの値だけが消えていたり、入力値の検証が出来なかったりと、挙動が変でした; 配布元のクレファレイ・ファクトリーさんのブログでも ・バグ:エラー時や戻るボタンを押したときに偶数個目のtextareaの値が空になりますとの報告があり、修正したバージョンでやり直してみたのですがやっぱりダメ;; いろいろとソースを眺めていたら・・
<textarea id = "f_commente" name = "comment" rows="3" cols="40" valid="1::お問い合わせ内容></textarea>

みたいに「id」や「name」属性の「=」の両側にいつの間にか入っていた半角スペースがダメだったみたい; 削ったら治りました。 確認画面に値は渡されているので、てっきり確認画面でhiddenに値を上手く詰める事が出来てないのかな?と思いましたが 自分のソースが汚いだけでした。反省します; (ただMODxのチャンク編集画面は半角スペースがわかりにくいのです;)

このアーカイブについて

このページには、2010年5月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2010年1月です。

次のアーカイブは2010年6月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。