基本から formをdisableに。できたら一括で。

あまりさわる機会がないので、基本から調べないとなかなか進みません。。。


フォームを一括でdisabled(使用不可)にしたいと思って


document.targetForm.disabled = true;
(targetForm は、disabledにしたフォームのname)


としたのだけど、FireFoxが無反応(IE6は反応あり)な上に、
IE6でもselectが変化なし(inputとかは使用不可になるのだけど・・。なんだー?)。


要素一個ずつやるのかなぁーと思って調べてたら、
ステキな絵がGoogleキャッシュから拾えたので発掘メモしておきます。


http://www.axis.t.u-tokyo.ac.jp/~shunak/ecmascript/forms.html
(↑がオリジナルなのですが、ダウンしてしまっているようです)

window -+- document -+- forms ---+- length
                           |
                          form ------+- name
                                     +- method
                                     +- action
                                     +- encoding
                                     +- elements -+- length
                                          |
                                        input ---+- name
                                                 +- type
                                                 +- value
                                                 +- checked
                                                 +- length
                                                 |    |
                                                 |  (radio) -+- checked
                                                 |           +- value
                                                 |
                                                 +- options -+- length
                                                      |      +- selectedIndex
                                                      |
                                                    option -+- selected
                                                            +- value

上記を参考に

function disabled(form, state) {
    for(var i = 0; i < form.elements.length; i++) {
        form.elements[i].disabled = state;
    }
}

とか作って

disabled(document.targetForm, true) // disabledに
disabled(document.targetForm, false) // disabled解除

でうまくいきました。