ここから本文です

Javascriptをonclickに書くときちんと動くのに外部ファイルにすると動かない

samplepassnameさん

2014/2/2802:50:29

Javascriptをonclickに書くときちんと動くのに外部ファイルにすると動かない

ボタンを押すと他のあるボタンが無効化するのを作りたくて

HTML:
<input type="button" value="無効化" onclick="document.forms[0].elements[3].disabled=true;" />

とするとちゃんと動くのに,外部ファイルを使って
HTML:
<input type="button" value="無効化" onclick="all()" />
Javascript:
function all(){
document.forms[0].elements[3].disabled = true;
}

とすると動かないのはなぜ? (ファイルはちゃんと読み込めてる)

閲覧数:
2,310
回答数:
3

違反報告

ベストアンサーに選ばれた回答

ris********さん

2014/2/2820:49:32

スコープチェーンの問題です。

onclick="all()" と書いたとき、どのように all を探すか。まず onclick 内ですが、ありませんね。次に input.all を探しますが、これもない。次に form.all ですがなし、次に document.all……あ、あった。

というわけで、そのコード断片だと document.all() を実行し、エラーを出すでしょう。何でこんな振る舞いになっているのか。昔のシガラミです。

質問した人からのコメント

2014/2/28 21:23:23

成功 さすがカテマスですね、分かりやすかったです。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

zat********さん

2014/2/2809:48:48

この場合は外部ファイルの問題ではなく関数名の問題です。
つまりall()という関数名がダメだという意味です。
試しにall0()とかに変えれば期待通りに動きますよ。
実は私も同じミスをして悩んだことがあります。

meigr01さん

2014/2/2808:27:17

外部ファイルをどこに作りどのように呼び出したのかよく見えません。
JavaScriptの指定が無効なのでは?

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる