Javascriptのエラーに対するNullまたはオブジェクトの対策

このQ&Aのポイント
  • Javascriptで発生する'エラー: document.test_form.test_element.value'はNullまたはオブジェクトではありません。このエラーに対処するには、nullを使って分岐させることが一般的な方法です。
  • Javascriptのエラー'エラー: document.test_form.test_element.value'においてNullまたはオブジェクトの対策として、nullチェックを行うことが望ましいです。nullではない場合にのみ、alertを実行するようにします。
  • Javascriptにおける'エラー: document.test_form.test_element.value'はNullまたはオブジェクトではないため、nullチェックを行って分岐させる方法が適切です。nullでない場合のみalertを実行し、エラーを回避することができます。
回答を見る
  • ベストアンサー

Nullまたはオブジェクトではありません。の対策

Javascriptで以下のエラーが発生します。 'エラー: document.test_form.test_element.value'はNullまたはオブジェクトではありません。 この場合、ソースでは alert(document.test_form.test_element.value); としているのですが、以下のようにnullを使って分岐させるのが Javascriptの王道でしょうか? if (null != document.test_form.test_element){ alert(document.test_form.test_element.value); } よろしくお願いいたします。

  • bazax
  • お礼率5% (12/228)

質問者が選んだベストアンサー

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

document.test_form.test_element.value 。。。ですが。。。 「test_element」って。。。何ですか(汗 ラジオボタンかチェックボックスかセレクトリスト。。。? 少なくとも、テキストボックスじゃなさそうですけど。 その名前が間違えてないことを前提としたら、そのエラーメッセージが出る理由としては、指定が違う。。。かな(汗

関連するQ&A

  • Nullについて

    こんばんは!よろしくお願いします。 新規に作成したフォームにコンボボックスを設置して Sub test1() If Form_フォーム1.コンボ0.Value = Null Then Form_フォーム1.コンボ0.Value = "" End If MsgBox Form_フォーム1.コンボ0.Value End Sub Sub test2() If IsNull(Form_フォーム1.コンボ0.Value) = True Then Form_フォーム1.コンボ0.Value = "" End If MsgBox Form_フォーム1.コンボ0.Value End Sub 上記2つのサンプルを実行した時に、 test1のほうだけ 実行時エラー94 Nullの使い方が不正です。 となります。 ウォッチウインドウで見ていくと、 「オブジェクト変数、またはwithブロック変数が設定されていません。」 となりますが 「If Form_フォーム1.コンボ0.Value = Null Then」 を通過したら Nullになります。 何が起こっているのでしょうか?

  • Null またはオブジェクトではありませんのエラー

    HTML部で <FORM NAME="frm1" METHOD="post" ACTION="xxx.html">  <INPUT TYPE="hidden" NAME="txt1"> </FORM> javascriptで document.frm1.txt1.value = "hoge"; document.frm1.submit(); のように記述しています。 FireFoxブラウザでは期待通りの動きをするのですが、 IE6では「document.frm1.txt1はNullまたはオブジェクトではありません」 とエラーが出てしまい、画面遷移しません。 因みにページはフレームを利用しており、 フォームや画面遷移はメインフレームでしか使っていないので、 フレーム名も特につけておりませんし、 targetの記述も使用しておりません。 そこらへんに原因があるのでしょうか。 それにしてもFireFoxでは可、IEではエラー というのも解せないです。 どなたか分かる方いらっしゃいましたら ご教示願います。

  • オブジェクトが存在しない

    というエラーが次のhtmlファイルをブラウザで表示させようとするとでます if(document.form0.title!=null) で判断しているだけでだめみたいです そしたらdocument.form0.titleが存在するかどうかをエラーなしで判断させる方法はあるのでしょうか? <HTML> <HEAD> <script type='text/javascript'> <!-- function FormFocus() {  if(document.form0.title!=null)document.form0.title.focus(); } // --> </script> </HEAD> <body onload='javascript:FormFocus()'> <form name='form0'></form> </BODY> </HTML>

  • 「nullまたはオブジェクトではありません」というエラーが出ます。

    こんにちは、IE7、VISTAで試しています。 エラーもなく動いたのですが、 sClientXとsClientYの値をフォームメールでデータ送信したくて clientX=<input type="text" id=sClientX><br> clientY=<input type="text" id=sClientY><br> という部分を<form>内に入れると 「sClientXはnullまたはオブジェクトではありません」 というエラーが出ます。 エラーの原因はなんでしょうか? <HTML> <HEAD> <SCRIPT language="JavaScript"> <!-- var sample; var sClientX; var sClientY; var target; var isDrag=0; function document_onmousedown(){ isDrag=1; target=event.srcElement;} function document_onmousemove(){ if( isDrag ){ target.style.top=event.clientY-8; target.style.left=event.clientX-8;} } function document_onmouseup(){ isDrag=0; sClientX.value = document.getElementById('sample').style.left; sClientY.value = document.getElementById('sample').style.top; } document.onmouseup = fOnmousemove; function fOnmousemove() { } //--> </SCRIPT> </HEAD> <BODY onmousemove="document_onmousemove()" onmousedown= "document_onmousedown()" onmouseup="document_onmouseup()"> <DIV style="position:absolute" id=sample> このオブジェクトが移動します </DIV> <DIV id=text1 style="position:absolute;font-size:24px; cursor:hand"> </DIV> <form> clientX=<input type="text" id=sClientX><br> clientY=<input type="text" id=sClientY><br> </form> </BODY> </HTML>

  • javaScript Nullまたはオブジェクトではありません エラー

    javaScriptは詳しくなく、サンプルプログラムを 参考にさせていただきながらテストをしています。 現在javaScriptで、タブ切り替えで表示内容を変更し、 表示されたフォームに、data.textの内容を表示するという テストをしています。 [コード] <html> <head> <meta http-equiv="content-type" content="text/html;charset=shift_jis"> <title></title> <script type="text/javascript"><!-- function loadTextFile() { httpObj = new ActiveXObject("Microsoft.XMLHTTP"); httpObj.onreadystatechange = statusCheck; httpObj.open("GET","data.txt",true); httpObj.send(null); } function statusCheck() { if ((httpObj.readyState == 4) && (httpObj.status == 200)) { displayData(); } } function displayData() { document.ajaxForm.result.value = httpObj.responseText; } // --></script> </head> <body> 省略(タブの切り替え設定) <div style="display:none" id="NAME11"> test1 </div> <div style="display:none" id="NAME22"> <form name="ajaxForm"> <input name="button" type="button" onClick="loadTextFile()" value="読み込み"> <textarea name="result" cols="40" rows="5"></textarea> </form> </div> <div style="display:none" id="NAME33"> test3 </div> </body> </html> ------------------------ 上記を実行すると "document.ajaxForm.resultは Nullまたはオブジェクトではありません" というエラーになってしまいます。 よろしくお願いします。

  • document.form で nullまたは・・・jsエラー

    いつもお世話になってます。解決方法を教えてください。 抜粋します。 --- disp.php (元のphpファイル) <form name="dispfm"> <? $test1 = "test1"; $test2 = "test2"; ?> <select name="select1" onchange="get_msg(this)"> <option value="aaa"><?=$test1;?></option> <option value="bbb" selected><?=$test2;?></option> </select> <textarea name="ta1"><?=$msg;?></textarea> </form> --- .js function get_msg(obj){ var no = obj.form.select1.options[obj.form.select1.selectedIndex].value; location.herf="chk.php?&type=select&no="+no;  //ここまでは通っていることは確認できている } --- chk.php <? if(type == "select"){ $query = "--- SQL ---"; $rlt = mysql_query($query); $msg = mysql_result($rlt, 0);  //ここまでもalertにて通っていることを確認済み //SQLも値とれている ?> <script type="text/javascript"> <!-- document.dispfm.ta1.value = $msg;<---☆ここでjsエラー(Nullまたはー) //★ここあたり //--> </script> <?exit; } ?> --- ☆の部分で「Nullまたはオブジェクトではありません」となり、 元のdisp.phpへ戻ることなく、nullページ(空白何も表示なし)となってしまいます。 ソースをみてもjs部分が書いてあるだけです。 form名とせずにform[0]でしてみたり、getElementByIdでも試しましたが、一向に動きません。 chk.phpでやりたいことは、選んだリストの値をもとに、SQLでtextareaにセットする値を取得する、それを画面を新たに読み込まずにセットしたい、また既に入力された他の値をそのまま残したい。 宜しくお願いします。

  • NULLまたはオブジェクトではありませんのエラーについて

    いつも大変勉強させていただいています。初心者です。 さて、現在自動計算を作成中ですが、 現在、オプションメニューで計算させる事には成功したのですが、出来ればラジオボタンで選択したものを計算できるようにと考えて色々試したのですが、上手く設定が出来ません。 皆さんのお知恵を拝借できないでしょうか? 宜しくお願いいたします <<外部リンクファイルです>> function KeiCalc(KC) { //オーダー見積計算式 function KeiCalc(KC) { var item1,no1; //表生地 item1 = document.Calc.X1.options[document.Calc.X1.selectedIndex].value; if(item1 == 1){Z1 = 8000} if(item1 == 2){Z1 = 10000} document.Calc.Z1.value =Z1; no1 = item1; //裏生地 item2 = document.Calc.X2.options[document.Calc.X2.selectedIndex].value; if(item2 == 1){Z2 = 8000} if(item2 == 2){Z2 = 10000} document.Calc.Z2.value =Z2; no2 = item2; (省略) //合計計算 document.Calc.PRC.value = Math.round((eval(document.Calc.Z1.value)+eval(document.Calc.Z2.value)+(eval(document.Calc.Z3.value)*eval(Z6))+eval(document.Calc.Z4.value))*eval(Z5)); (省略) } ホームページのフォームの内容 【この場合は動作するのですが、ラジオボタンに変更すると動作しません】 <SELECT name="X1" onchange="KeiCalc(this.form)"> <OPTION value="1">ノヴェル・ピンク</OPTION> <OPTION value="2">ノヴェル・ブル</OPTION></SELECT> 途中のフォームの内容 <INPUT type="radio" name="X1" value="1">ノヴェル <INPUT type="radio" name="X1" value="2">ツインベリー これで動作させると以下のようなエラーが出てしまいます document.Calc.X1.optionsはNULLまたはオブジェクトではありません・・・と 宜しくお願いいたします

  • Formの「action」属性を取得したいけれども「action」という名のオブジェクトが存在している

    非常に困っています!よろしくお願いいたします。 以下のように「action」という名前のオブジェクトがあります。 <form name="form1" method="post" action="hoge.htm"> <input type="hidden" name="action" value="test"> <input type="submit" name="submit" value="OK"> </form> javascriptでaction属性「hoge.htm」を取得したいのです。そのため以下のようにコーディングしました。 alert(document.form1.action); 結果は「object」と表示されます。どうやらactionオブジェクトを対象としてしまうらしいのです。 action属性を取得する方法をお教えいただけないでしょうか。よろしくお願いいたします。

  • JavaScriptのfileオブジェクト(input type="file")の選択を初期化したい

    fileでユーザーが選択したファイルを、未選択の状態にしたいのですができません。 valueプロパティを""にしてもnullにしても、元の値(ファイルパス)が入ったままです。 HTML: <input type="file" name="picture_file"> JavaScript: document.form_main.picture_file.value = ""; alert(document.form_main.picture_file.value); document.form_main.picture_file.value = null; alert(document.form_main.picture_file.value); どうにかして初期化する方法はありますでしょうか?file以外のほかのinput項目は変更せず、また画面遷移もせず実現する必要があります。

  • [java script]NNでnullになる

    selectボックスに西暦を表示しています。 このselectボックスを2つ用意して、範囲設定を行っているのですが、 範囲指定大小チェックのロジックを作り、IEでは正しく動作したのですが、 NNだと関数conf()内でdocument.test.FROM_YEAR.valueとdocument.test.TO_YEAR.valueの値をみてみると、nullになっていたためFORM_YEAR>TO_YEARと指定しても範囲指定大小チェックのif文が、必ずfalseになって 処理を続行してしまいます。 なぜ、IEではうまくいくのにNNだとうまくいかないのでしょうか? これってNNのバグ??? ~ソースコード(抜粋)~ <SCRIPT LANGUAGE="JavaScript"> <!-- function conf() { from = document.test.FROM_YEAR.value; to = document.test.TO_YEAR.value; if (from > to) { alert("年の指定に誤りがあります。"); return false; } } //--> </SCRIPT> <FORM NAME='test' ACTION='test.html' METHOD="post" onSubmit="return(conf())"> <SELECT NAME='FROM_YEAR'> <OPTION VALUE='2001'>2001 <OPTION VALUE='2002' SELECTED>2002 <OPTION VALUE='2003'>2003 <OPTION VALUE='2004'>2004 <OPTION VALUE='2005'>2005 <OPTION VALUE='2006'>2006 </SELECT>年 <SELECT NAME='TO_YEAR'> <OPTION VALUE='2001' SELECTED>2001 <OPTION VALUE='2002'>2002 <OPTION VALUE='2003'>2003 <OPTION VALUE='2004'>2004 <OPTION VALUE='2005'>2005 <OPTION VALUE='2006'>2006 </SELECT>年 <INPUT TYPE='SUBMIT' NAME='SUBMIT' VALUE='登録'>