• ベストアンサー

外部ファイルを読み込めない

初めまして。いつも質問やその回答を読ませていただいて、参考にさせていただいてます。 javascriptで作った超簡単なプログラムが動かないんです。 どなたか、助けてください。(>_<) 以下、test.htmlとtest.jsを作って、試して見ているのですが、動かない理由が分からず苦しんでいます。 =============test.html============= <html> <head> <script type="text/javascript" language="javascript" src="./test.js" ></script> </head> <body> <table> <form name="form2" method="post" onSubmit="return check()"> <tr><td><input type="text" name="names" size="50"></td></tr> <tr><td><input type="submit" name="submit" value="予約"></td></tr> </form> </table> </body> </html> =============test.html============= =============test.js============= function check(){ names=document.form2.names; if(names.value == ""){ alert("お名前を入力してください。"); names.focus(); return false; } else return true; } =============test.js============= どちらも、同じディレクトリに入れています。safari、ieでも×です。 どなたか、教えていただけませんでしょうか。

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

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.1

<form name="form2" method="post" onSubmit="return check()"> に、action属性が抜けているようです。 呼び出したいファイルを指定してみてください。

ace_master
質問者

お礼

ありがとうございました! 今まで、mac上のDreamweaverで作成したものが動かなくて困っていたのですが、このページに貼付けた内容をwinのエディタに貼付けたら、動く様になりました。 はっきり分かりませんが、ソフト特有の何かがあったのかも知れません。 お騒がせしました&本当に本当にありがとうございました!

ace_master
質問者

補足

早速のご回答ありがとうございます。 実は、本番用のファイルでは、このtest.htmlのフォームに文字列が入っていることをtest.jsでチェックしたら、確認画面phpへ飛ぶことになっています。 ところが、何も入力されていなくてもphpファイルへ飛んでしまうのです…(泣) 念のため付けた内容でも試してみましたが、javascriptはうんともすんとも動いてくれませんでした。

その他の回答 (1)

  • hisajiro
  • ベストアンサー率37% (124/329)
回答No.2

私の環境では問題なく動いてますよ。 ソースの内容はコピペしたのでしょうか? あと設定でJavaScriptをオフにしちゃってるとかは無いですか?

ace_master
質問者

お礼

ありがとうございました! 今まで、mac上のDreamweaverで作成したものが動かなくて困っていたのですが、このページに貼付けた内容をwinのエディタに貼付けたら、動く様になりました。 はっきり分かりませんが、ソフト特有の何かがあったのかも知れません。 hisajiroさんの問題なく動いているとのコメントがヒントでした。(^-^) お騒がせしました&本当に本当にありがとうございました! 今後とも宜しくお願いします。

ace_master
質問者

補足

動いているんですね!確認いただいてありがとうございますぅ~。 内容はコピペしました。 そして、他のページのscriptは、もっと大量にチェックする項目があるものですが、動作しているのです。 それも自分で作ったのですが、ほぼコピペで作ったのにどうしてなのか… 環境が原因かも知れないのですね。 ちなみに、他のページで動かすscriptとの関係で動かなくなる、なんてことはあるのでしょうか。 # もちろん、jsファイルも別もので、別のディレクトリにありますし、formのnameも変えています。

関連するQ&A

  • ボタンクリックでフォーカス移動

    JavaScript超ビギナーなので方法がよくわかりません。 フォームにテキストボックス(配列)4個あり ボタンを押すたびに未記入のテキストボックスにカーソルを移動したいのですが。どのようにしたらいいでしょうか。 <form name="form1" method="post"> <table width="200" border="1"> <tr><td ><input type="submit" name="Submit" value="送信"></td></tr> <tr><td ><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> </table> </form>

  • サブウィンドウから親ウィンドウのフォームへの書き込み

    よろしくお願いします。 やりたい事は サブウィンドウを開いて サブウィンドウのテキストボックスに入力した内容を 親ウィンドウのテキストボックスに書き込みたいのです。 以下親ウィンドウ(oya.html) <html> <head> <script type="text/javascript"> <!-- function search(){ window.open( 'sub.html' ,'childwin', "width=350,height=250,location=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes" ); } --> </script> </head> <body> <form name="mainform" method="POST" action="hoge.php"> <TABLE border="1"> <TR> <TD>A:<INPUT type="text" name="A" id="A"></TD> </TR> <TR> <TD>B:<INPUT type="text" name="B" id="B"></TD> </TR> <TR> <TD><input type="button" onclick="search();return false;" value="サブウィンドウ"></TD> </TR> <TR> <TD><center><input type="submit" name="exec" value="確認"></center></TD> </TR> </TABLE> </form> </body> </html> 以下サブウィンドウ(sub.html) <html> <head> <script type="text/javascript"> <!-- --> </script> </head> <body> <form name="subform"> <TABLE border="1"> <TR> <TD>A:<INPUT type="text" name="A" id="A"></TD> </TR> <TR> <TD>B:<INPUT type="text" name="B" id="B"></TD> </TR> <TR> <TD><input type="button" value="入力"></TD> </TR> </TABLE> </form> </body> </html> 以上です。親ウィンドウの中にformが入れ子状態になってしまうため javascriptで対応できないのかと思い質問させて頂きました。 ご教示お願いいたします。

  • 入力チェックの外部スクリプトについて

    どなたか、お分かりになる方がおりましたらご指導お願いいたします。 フォームの入力チェックのjavascriptを外部ファイルにしたいのですが外部ファイルにすると動かなく なります。htmlファイル内部に記入すると動きます。以下のようにしています。 jabascriptは フォルダjsに入っています。 function formcheck(){ if(document.otoiawase.kenmei.value==""){ alert ("お問い合わせ件名を入力してください。"); return false; } if(document.otoiawase.email.value==""){ alert ("emailを入力してください。"); return false; } if(document.otoiawase.honbun.value==""){ alert ("本文を入力してください。"); return false; } } html文は以下の用になっています。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="content-language" content="ja" /> <meta http-equiv="robots" content="index" /> <meta name="kywords" contents="" /> <script type="text/javascript" src="../js/check_otoiawase.js"> </script> <title></title> </head> <body> <form action="****.php" method="post" name="otoiawase" onsubmit="return formcheck()"> <table> <tr> <td> <label>件名:</label> </td> <td> <input type="text" size="40" name="kenmei" /> </td> </tr> <tr> <td> <label>Email:</label> </td> <td> <input type="text" size="40" name="email" /> </td> </tr> <tr> <td colspan="2"> <textarea cols="40" rows="10" name="honbun"></textarea> </td> </tr> <tr> <td colspan="2"> <input type="submit" name="sousin" value="送信" /> </td> </tr> </table> </form> </body> </html> htmlファイルから見ますと、javascript文は一つ上の階層にある別のフォルダに入っていますので ../js/check_otoiawase.jsとしています。 よろしくご指導お願いいたします。

  • 記入内容のチェックについて

    javascriptの初心者です。どうぞよろしくお願いいたします。 下記のような内容で「商号」が空欄の場合「確認」ボタンを押すとアラートがかえってきて欲しいのですがうまくいきません。原因が分かる方いらっしゃいますか? <html> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <Script Language="JavaScript" src="common.js"></Script> <Script Language="JavaScript"> <!-- function kakunin_click(){ //入力チェック if(document.OnForm.syogo.value == ""){ //必須入力 alert("商号に入力がありません。"); document.OnForm.syogo.focus(); return false; } document.OnForm.submit(); return true; } //--> </Script> <title>契約</title></head> <body>  <form name="OnForm" method=post action="***.cgi"> <center> <TABLE border="0" cellspacing="1"> <tr> <TD>商号</TD> <TD><INPUT type="text" size="42" name="syogo"></TD> </tr> </TABLE> </center> <div align="center"> <center> <table border="0"> <tr> <td width="100%"> <input onclick="kakunin_click()" type="submit" value="確認"><input type="reset" value="やり直し"></td> </tr> </table> </center> </div> </form> </body> </html>

  • Submitを違うテーブルに設置

    submitボタンについての質問です。 原則 <form> <INPUT TYPE="TEXT"> <INPUT TYPE="SUBMIT"> <\form> のような形にしなければいけないと思うのですが。 テーブルを使って、このようにしたいのです. <table><tr><td> <input type="submit"> <!-- このボタンでデータを次に送りたい--> <\td> <td> <H2>Welcome to My HP<\h2> <form> <!--ここにもすでにちがう<form>があります.--> <\form> <form action="aaa.cgi" mothod="post"> <input type="text"><!-- ここの内容を送りたい--> <\form> <\td><\tr> <\table> Javascriptを使えばどうにかできるのではないかと思っているのですが、ぜひやり方を教えてください。宜しくお願いします。

  • 同一nameの input type="text" の合計を計算したい

    初めて質問させて頂きます。 form 内で同じname名を付けられたテキストフィールドの値の合計を計算し、その値に定数を乗じた値を表示させたいのですが、出来ずに困っております。 name名を別にすれば簡単に出来そうなのですが、このinputが別CGIからの受け取りの関係で数が不定で同一nameが付いてしまいます。(inputは1個以上で上限は無し) CGI側を書き換える事は自分の技術的に不可能なので、このような質問となりました。 以下は自分なりに試行錯誤の末の拙いソースです。 どなたかお分かりになる方、ご教授を宜しくお願い致します。 <html> <head> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> <!-- function kakunin() { var sub = Form.getInputs('form1', 'text'); ( var subtotal = ~~~; ここに上で得た数字を合計するみたいなものがくるのかなと・・・) var total = subtotal * 200; document.form1.field_total.value = total; // 合計を表示 } // --> </script> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <form action="" name="form1"> <table> <tr><td><input name="kazu" type="text" value="2"></td></tr> <tr><td><input name="kazu" type="text" value="1"></td></tr> <tr><td><input name="kazu" type="text" value="3"></td></tr> <tr><td>・・・増えたりします・・・</td></tr> <tr><td><input type="button" size="8" onclick="kakunin()" value="合計を確認"></td></tr> <tr><td><input type="text" name="field_total" size="30" value="total"></td></tr> </table> </form> </body> </html>

  • HTMLのフォーム名とJavaScriptの関数名

    JavaScriptを勉強し始めたばかりの者です。 submitボタンがonClickされたときにcheckという関数を呼び出しているのですが、 フォーム名とJavaScriptの関数名を同じものにすると、その関数が呼び出されなくなっているようなのです。 ------------------ form.html ----------------------------------------------------- <html> <head> <meta http-equiv="Content-type" content="text/html; charset=euc-jp"> <script type="text/javascript" src="test.js"></script> <link rel="stylesheet" type="text/css" href="style.css"> <title>フォーム</title> </head> <body class="blue" marginwidth="100" topmargin="40" bottommargin="80"> <form name="check" method="post" action="form2.cgi"> <table border="1" cellpadding="7"> <caption>フォーム</caption> <tr> <td>※ID</td> <td><input type="text" name="id"></td> <td>テキストボックス</td> </tr> </table> <br> <input type="submit" name="send" value="送信" onClick="check()"> <input type="reset" name="clear" value="リセット"></td> </form> </body> </html> ------------------ test.js ------------------------------------------------------- <!-- function check() { if( document.check.id.value == "" ){ alert( "※のついている項目は入力必須項目です!" ); } return; } --> ------------------------------------------------------------------------------- 上記のソースで、テキストボックスに何も入力せずに送信ボタンを押してもalertは表示されませんが、 フォーム名あるいは関数名のどちらかをcheck1やcheck_1にすると表示されるようになります。 フォーム名と関数名を同じものにするとalertは表示されません。 フォーム名と関数名の関係はこのようなものなのでしょうか? また上記のソースに原因があるようでしたらお教えください。

  • javascriptによる計算

    テキストボックス「a1~6」の値とテキストボックス「b1~6」に入力された値を足し算してテキストボックス「c1~6」(例…c[i] = a[i] + b[i])を計算するJavaScriptを作成しているのですが、結果がundefinedになってしまい上手くいきません。どうやったら動くのかどうかご教授ください。 以下ソース↓ <script language ="JavaScript"> function plus() { var intResult = 0; for (i=1; i<=6; i++){ intResult[i] = 0; if (!isNaN(document.forms["A"].all["a"+i].value) && !isNaN(document.forms["B"].all["b"+i].value)){ intResult[i] += parseInt(document.forms["A"].all["a"+i].value); intResult[i] += parseInt(document.forms["B"].all["b"+i].value); } <table border = 1> <tr> <td> <table border = 1> <tr> <td> <form name="A"> <input type = "text" size = 5 name = "a1"></input> </td> <td> <input type = "text" size = 5 name = "a2"></input> </td> <td> <input type = "text" size = 5 name = "a3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "a4"></input> </td> <td> <input type = "text" size = 5 name = "a5"></input> </td> <td> <input type = "text" size = 5 name = "a6"></input> </form> </td> </tr> </table> </td> <td> <table boeder = 1> <tr> <input type = "button" onClick="plus()" value = "+"></input> </tr> </table> </td> <td> <table border = 1> <tr> <td> <form name = "B"> <input type = "text" size = 5 name = "b1"></input> </td> <td> <input type = "text" size = 5 name = "b2"></input> </td> <td> <input type = "text" size = 5 name = "b3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "b4"></input> </td> <td> <input type = "text" size = 5 name = "b5"></input> </td> <td> <input type = "text" size = 5 name = "b6"></input> </form> </td> </tr> </table> </td> </tr> </table> 答え <form name = "C"> <table border = 1> <tr> <td> <input type = "text" size = 5 name = "c1"></input> </td> <td> <input type = "text" size = 5 name = "c2"></input> </td> <td> <input type = "text" size = 5 name = "c3"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "c4"></input> </td> <td> <input type = "text" size = 5 name = "c5"></input> </td> <td> <input type = "text" size = 5 name = "c6"></input> </td> </tr> </table> </form> </body> document.C.all["c"+i].value = intResult[i]; } } </script>

  • 2つのフォームに値を入れて計算

    2つのフォームを作り、その2つを計算したいのですがオブジェクトの指定の仕方がエラーが出てしまい(オブジェクトを指定してくださいと出ます)わかりません。 どうか教えてください。 ちなみにforなどは使わなくても大丈夫ですのでよろしくお願いします。 function kei() { var kei1 = 0; kei1=eval(document.A.a11.value) * eval(document.B.b21.value) ; document.C.c11.value = kei1; } <table border = 1> <form name="A"> <tr> <td> <input type = "text" size = 5 name = "a11"></input> </td> <td> <input type = "text" size = 5 name = "a12"></input> </td> <td> <input type = "text" size = 5 name = "a13"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "a21"></input> </td> <td> <input type = "text" size = 5 name = "a22"></input> </td> <td> <input type = "text" size = 5 name = "a23"></input> </td> </tr> </form> </table> <table boeder = 1> <tr> <input type = "button" onClick="kei()" value = "×"></input> </tr> </table> <table border = 1> <form name="B"> <tr> <td> <input type = "text" size = 5 name = "b21"></input> </td> <td> <input type = "text" size = 5 name = "b22"></input> </td> <td> <input type = "text" size = 5 name = "b23"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "b31"></input> </td> <td> <input type = "text" size = 5 name = "b32"></input> </td> <td> <input type = "text" size = 5 name = "b33"></input> </td> </tr> </form> </table> <table border = 1> <form name="C"> <tr> <td> <input type = "text" size = 5 name = "c11"></input> </td> <td> <input type = "text" size = 5 name = "c12"></input> </td> <td> <input type = "text" size = 5 name = "c13"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "c21"></input> </td> <td> <input type = "text" size = 5 name = "c22"></input> </td> <td> <input type = "text" size = 5 name = "c23"></input> </td> </tr> </form> </table>

  • tableタグとformタグの組み合わせ

    tableタグとformタグの組み合わせでどのように記述すれば、構文上正しいのでしょうか? 私は下のパターンで書いておりますが、間違いでしたら早めに改めたいので お聞きしました。 <table> <form> <input type="hidden" name="a" value="1"> <tr> <td> <input type="text" name="b" value=""> </td> </tr> <tr> <td> <input type="submit" value="OK" value=""> </td> </tr> </fomr> </table>

    • ベストアンサー
    • HTML