- ベストアンサー
ネスケで動かないjavascriptの調べ方
下記はセレクトボックスを選択させるためのものですが、IEでは動きますが、NNでは動きません。この時に、何かで調べようとするときに、「何」を調べればいいのかさっぱりです。できれば、 1番目に○を調べ、 2番目に○を調べ、 というような手順についてアドバイスいただけないでしょうか。 <SCRIPT language=JavaScript> function submitCheck(){ for( i=0 ; i<document.main.length ; i++ ){ if(document.main.elements[i].type == "select-one" && document.main.elements[i].value == "err"){ alert("未選択項目があります。"); document.main.elements[i].focus(); return false; } } } </SCRIPT> <FORM NAME=main ACTION="sample.cgi" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" onSubmit="return submitCheck()"> <SELECT NAME="kubun"><OPTION SELECTED value="err">↓【選択して下さい】</OPTION> <OPTION>りんご</OPTION> <OPTION>みかん</OPTION> </SELECT> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="送信"></form>
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
そんなにJavaScriptに詳しいわけではないですが, ぱっと見て怪しいところは, language=JavaScript document.main document.main.elements document.main.elements[i] document.main.elements[i].type ENCTYPE="application/x-www-form-urlencoded" あたりです.JavaScriptのリファレンスでは, どのブラウザのどのバージョン以後で使えるか, ひとつひとつ書いてあるはずなので, それを確認しましょう. まず怪しいところを.それでも動かなければ,全てのコードについて.
その他の回答 (3)
ネスケの場合、ウィンドウ上部のURLを入力する部分に javascript: と打ち込めば、何行目のどこがエラーになっているのかがわかります。 その周辺を調べればいいのではないでしょうか。
お礼
回答ありがとうございました。 >javascript:と打ち込めば、 あきれる位のたくさんのメッセージが出ます。 これを頼りに修復してみます。(^O^)
URL欄に「javascript:」といれてみてください。 NNのJavaScriptデバッガ(?)が起動されます。 もしJavaScriptエラーが出てた場合はここにエラーの内容と行番号が表示されます。 ここで何も表示されていなければ文法エラーではないということになります。 単純なデバッグ方法としては、alertを表示させる方法などがあります。 alertが出た場合は、alertを埋め込んだ文までは正常に処理が流れている、と判断できるので。 ついでに変数も表示させるようにすれば、変数の値の変化もわかりやすいのでデバッグしやすいです。
お礼
回答ありがとうございました。 >URL欄に「javascript:」といれてみてください。 これだと大量にエラー表示されるのでびびってしまいます。 (^^; しかし、それに付き合っていくしかないのですね。(^O^) #奥が深い・・。
- wolv
- ベストアンサー率37% (376/1001)
もっと一般に,どこがエラーの原因かわからないばあいは, ほとんどのコードをコメントアウトして, 一文ずつ確かに動くことを確認していきます. 変数などを使っている場合は,適当にプリント文を埋め込んで, 変数の値を表示することもします.
お礼
>ほとんどのコードをコメントアウトして, やはりそれしかないのですね。 IEオンリーのイントラで動けばいいだけのものを中心に作っているので、どうもネスケの話になって来ると大儀になってしまいます。 (^^;
お礼
回答ありがとうございました。 >JavaScriptのリファレンスでは, >どのブラウザのどのバージョン以後で使えるか, >ひとつひとつ書いてあるはずなので, >それを確認しましょう. それすら知りませんでした。 そしてそれをどこから手に入れるかもまだわからない状態ですが (^^;