formについてFirefoxで動作させたい

このQ&Aのポイント
  • IEとGoogle Chromeでは正常に動作確認済み。Firefoxでも正常に動作させる方法を教えてください。
  • クリックしてもボタンが動かない問題があります。どの部分を修正すれば解決できるでしょうか?
  • パスワードが未入力の場合や間違っている場合に適切なメッセージを表示するJavaScriptコードが必要です。
回答を見る
  • ベストアンサー

formについてFirefoxで動作させたい

IEとGoogle Chromeでは動作が正常に確認できました。 Firefoxでも正常に動作するようにしたいのですが、何処を直せば良いのでしょうか? クリックしてもボタンが動いてないようなのですが・・・・。 すみません、どなた様かご存知でしたら、どうぞよろしくお願い致します。 <script type="text/javascript"> function PassChack(){ var passWord = passF.pass.value; if(passWord ==""){ alert("パスワードが未入力です"); return false; }else if(passWord == "aaa"){ location.href = "aaa.html"; }else{ alert("パスワードが間違っています"); } } </script> <form method="post" id="passF">   <input type="text" name="pass" id="pass" size="30" value="" /><input type="button" value=" 実行 " onclick="PassChack();return false;" /> </form>

  • u2122
  • お礼率71% (125/176)

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

var passWord = passF.pass.value; を var passWord = document.getElementById("pass").value;

u2122
質問者

お礼

ありがとうございます!

u2122
質問者

補足

どちらを選ぶか迷ったのですが、NO2だと、正確なパスワードを入力してもリンク先に飛ばなかったので、こちらをベストアンサーに選びました。 notnot様、yambejp様、回答本当にありがとうございました。大変助かりました!

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>なぜ、Firefoxだと動かないのでしょうか。 >何が悪くて、動作しなくなるんでしょうか? >>var passWord = passF.pass.value; という宣言は、昔のブラウザは「passF」という名前(もしくはid)のオブジェクト をご丁寧に探しに行ってくれたのですが、そんな不正確であいまいな情報をもとに データにアクセスするのは危険です 最近のトレンドは#1のようなidを振ってgetElementById(所定のID)とすることです もしくは#2のオブジェクトを順を追って参照することです。 IEでうごくのは「たまたま」だと思ってください

u2122
質問者

お礼

お礼が遅くなりました。申しわけございません。 なるほど!大変分かりやすいです(笑)こんなろころでも時代はかわるんですね~。 もっと勉強しなくてはなりませんね。 本当にありがとうございました!大変勉強になりました!!

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

formをオブジェクトで渡してやるのが手っ取り早い <script> function PassCheck(f){ var passWord = f.elements["pass"].value; if(passWord ===""){ alert("パスワードが未入力です"); return false; }else if(passWord === "aaa"){ location.href = "aaa.html"; }else{ alert("パスワードが間違っています"); } } </script> <form method="post"> <input type="text" name="pass" size="30" value=""> <input type="button" value=" 実行 " onclick="PassCheck(this.form);"> </form>

u2122
質問者

お礼

ありがとうございました!!大変助かりました!

u2122
質問者

補足

なぜ、Firefoxだと動かないのでしょうか。 何が悪くて、動作しなくなるんでしょうか? さらに質問して申し訳ございませんが、 原因もお分かりになりますでしょうか?

関連するQ&A

  • javascriptの動作で困ってます。

    動作不良が三箇所あります。 プログラムに詳しい方がいらっしゃいましたら原因を教えて下さい。 ・未入力の質問をアラートで一括表示させたいのですが、 (3)のテキストエリアの箇所が未入力なのにアラートに表示できません。 判定のtrueとfalseを逆にして試すと、(3)のアラートは表示されるものの、記入しても アラートが出続けます。 ・1度しか指定していないにも関わらず同じ内容の警告アラートが2回出てしまう原因が分かりません。 ・入力した項目や選択した項目に関しては未入力項目のアラートとは別のアラートを用意してvalueの値をアラートで一括表示させたいのですが、関数を定義しているにも関わらず、関数が定義されていないとエラーメッセージが帰ってきて、表示されません。 ソースコードは以下になります。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> function check(){ var msg = ""; var msg2 = ""; var str = document.form.id.value; var str2 = document.form.pass.value; if (str.match(/[^0-9]+/)) { alert("客番号は数字のみ"); } if (str.length>5) { alert("客番号は4~5桁"); } if(str.length<4){ alert("客番号は4~5桁"); } if(str==""){ msg += "客番号が未入力です。\n"; }else{ msg2 += document.form.id.value; } if(str2==""){ msg += "パスワードが未入力です。\n"; }else{ msg2 += document.form.pass.value; } if(radioCheck()==false){ msg += "(1)が未入力です。\n"; } if(checkboxCheck()==false){ msg += "(2)が未入力です。\n"; } if(textareaCheck()==false){ msg += "(3)が未入力です。\n"; } if(selectCheck()==false){ msg += "(4)が未入力です。\n"; } if(msg != ""){ //メッセージを出力 alert(msg); } if(radioCheck()==true){ msg2 += document.form.eng.value ; } if(checkboxCheck()==true){ msg2 += document.form.lang.value ; } if(txtareaCheck()==true){ msg2 += document.form.opinion.value ; } if(selectCheck()==true){ msg2 += document.form.age.value ; } if(msg2 != ""){ //メッセージを出力 alert(msg2); } } function radioCheck(){ var count = 0; var eng=document.getElementsByName("eng"); for(var i=0;i<eng.length;i++){ if(eng[i].checked){ count++; } } if(count != 0){ return true; } else{ return false; } } function checkboxCheck(){ var count = 0; var checklist=document.getElementsByName("lang[]"); for(var i= 0;i<checklist.length;i++){ if(checklist[i].checked){ count++; } } if(count != 0){ return true; } else{ return false; } } function textareaCheck(){ var textarea=document.getElementById("demand").value; if(textarea!=""){ return true; } else{ return false; } } function selectCheck(){ var selectValue=document.getElementById("age").value; if(selectValue!="選択されていません"){ return true; } else{ return false; } } </script> </head> <body> <form action="http://www" method="post" name="form"onSubmit="return check()"> <h1>アンケート</h1> <p><label>客番号:<input type="text" name="id"></label></p> <p><label>パスワード:<input type="password" name="pass"></label></p> <h2>(1)</h2> <p>食べたいですか?<br> <br> <input type="radio" name="eng" value="yes"> はい <input type="radio" name="eng" value="neither"> どちらでもない <input type="radio" name="eng" value="no"> いいえ </p> <h2>(2)</h2> <p>食べたい物<br> <br> <input type="checkbox" name="lang[]" value="apple"> りんご <input type="checkbox" name="lang[]" value="banana"> バナナ <input type="checkbox" name="lang[]" value="pasta"> パスタ <input type="checkbox" name="lang[]" value="pizza"> ピザ <input type="checkbox" name="lang[]" value="supu"> スープ </p> <h2>(3)</h2> <p>意見(自由記述)<br> <textarea id="demand" name="opinion" cols="40" rows="4" maxlength="20"> </textarea> </p> <h2>(4)</h2> <p> 年齢を選択 <select id="age" name="age"> <option selected value="選択されていません">以下から選択</option> <option value="10~19才">10~19才</option> <option value="20~29才">20~29才</option> <option value="30~39才">30~39才</option> <option value="40~49才">40~49才</option> <option value="50~59才">50~59才</option> <option value="60~69才">60~69才</option> <option value="70才~">70才~</option> </select> </p> <p> <input type="submit" name="button" value="送信" onclick="check();"> <input type="reset" value="クリア"> </p> </body> </form> </html>

  • フォームで条件によってボタンの処理を変える

    フォームでパスワードを入力してもらい、確認用にもう一度入力した際、 誤入力があればアラート、正しく同じ値が入力されればsubmitにしたいと思っており、下記のようなコードを書きましたが、同じ値を入力した際にIEでエラーがでてしまいます(FirefoxやSafariでは動きます)。 当方Javascriptの知識に乏しく、どなたか助けていただけませんでしょうか?宜しくお願いいたします。 <html> <script language="JavaScript"> <!-- function passCheck(){ pass1 = document.free.PASSWORD.value; pass2 = document.free.PASSWORD2.value; if(pass1!==pass2) {alert("入力された確認用パスワードが違います");} else if(pass1==pass2) {document.free.submit.type="submit";} } //--> </script> <body> <form method="POST" action="submit.cgi" name="free"> <p> <input type="password" size="20" name="新パスワード" id="PASSWORD"><br> <input type="password" size="20" name="新パスワード(確認)" id="PASSWORD2"> </p> 確認のため、上記と同じパスワードをご記入ください。 <p><input type="button" name="submit" value="確認する" onclick="passCheck()"/></p> </form> </body> </html>

  • formのボタンをsubmitしたときにアラート

    javascript で、formのボタンをsubmitしたときに アラートが出るようにしたいと思います。 下記のように作ってみましたが、うまく動きません。 どのようにすれば動くでしょうか? ご教示いただきたくお願いいたします。 <script type="text/javascript"> function(){ $('form1').submit(function(){ $.ajax({ type: 'POST', data: postData, url: 'buy.php', success: function(data){alert("購入できました");} error: function(){alert('購入できませんでした。再度お試しください');} }); return false; }); } </script> <form name="form1" id="form1" method="POST" name="form1" value="form1" action="buy.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="name" value="高橋" /> <input type="submit" value="Save"> <form/>

  • javascriptでのアラート表示

    javascriptで大変困っております。 ラジオボタン・テキストエリアにまたがったチェックアラートをだしたいのですが、うまくいきません。 <script> function form_check(f) { if (f.Q1.value == "") { alert("・未記入です!"); return false; } ・ ・ ・ if (f.Q6.value == "") { alert("・名前が未記入です!"); return false; } else return true; } function reset_conf() { if (confirm("フォーム内容をリセットします!\n\nよろしいですか?")) return true; else return false; } </script> -------- <FORM ACTION="hogehoge.cgi" METHOD="POST" onSubmit="return form_check(this)"> 教育:<INPUT TYPE="radio" NAME="Q1" VALUE="OK"> テスト:<INPUT TYPE="radio" NAME="Q2" VALUE="OK">  アンケート:<INPUT TYPE="radio" NAME="Q3" VALUE="OK"> AAA:<input name="Q4" type="text" /> BBB:<input name="Q5" type="text" /> CCC:<input name="Q6" type="text" /> <INPUT TYPE="hidden" NAME="number" VALUE="6"> <INPUT TYPE="submit" NAME="answer" VALUE="送信する"> <INPUT TYPE="reset" NAME="reset" VALUE="リセット"> </FORM> </form> ------- テキストエリアのアラートチェックは出来ない状態です。 すべてにチェックまたは、テキスト入力がされていないと送信できないようにしたいのです。 どうしたらよいでしょうか?

  • formの判別について

    テキストボックスが空だったら、alertをだし、からじゃなかったら次のページへ飛ぶというスクリプトを実行させたいのですが、うまくいきません。 以下のどこがおかしいのかご教授いただけないでしょうか? --------------以下スクリプト ●htmlのヘッダへ記入 <script language="JavaScript"> <!-- function checkForm(form){ /* IDのチェック */ if(!form.text1.value){// 未入力のチェック alert("IDが入力されていません。"); }else{   document.location.href="next.html";   } } //--> </script> ●html内のフォーム側 <form action="" onSubmit="checkForm(this)" method="post"> <input type="text" size="50" name="text1" maxlength="10"> ----------------------------------以上

  • フォームメールでURL送信時、存在しないURLの入力を拒否したい

    xmlhttprequest.comにあるxmlhttprequest.jsを使って、 会社の問い合わせページとして、URLやコメント等を入力して 送信できるメールフォームのページを作っています。 存在しないURLを入力した場合はエラーを返すようにしたのですが、 今度は、メールフォームのコマンドが実行されなくなって しまいました。 どこがおかしいのかご教示いただきたく。 <html><head><title>お問い合せ</title> <script type="text/javascript" src="xmlhttprequest.js"></script> <script type="text/javascript"><!-- xhobj = new XMLHttpRequest(); LoadFlg = 0; function init(){ } function go(){ document.form2.Url.value = "http://www.google.co.jp/" + document.form1.Url.value; document.form2.comment.value = document.form1.comment.value; if ( all_check(document.form1) ){ document.form2.submit(); } } function all_check(form){ if( !(nullCheck(form.Url,"URLを")) ){ return false; } if( !(nullCheck(form.comment,"問合せ内容を")) ){ return false; } if( !(stateCheck(form.Url)) ){ return false; } return true; } function alert_focus(obj,str){ alert(str + "入力してください。"); obj.focus(); } function nullCheck(obj,str){ if (obj.value == "" || obj.value == null){ alert_focus(obj,str); return false; }else{ return true; } } function stateCheck(obj){ if(xhobj == null){ alert("お使いのブラウザは対応していません。"); return false; } if(LoadFlg == 0){ LoadFlg = 1; xhobj.onreadystatechange = handleXHRequest; xhobj.open("GET", "http://www.google.co.jp/"+ obj.value, true); xhobj.send(null); } else { LoadFlg = 0; xhobj.abort(); return true; } } function handleXHRequest(){ if(xhobj.readyState == 4){ if(LoadFlg == 1){ if(xhobj.status != 200){ form1.state.value=xhobj.status; alert("存在しているURLを入力してください。"); return false; } xhobj.abort(); LoadFlg = 0; } return true; } } // --></script> </head> <body onLoad="init();"> <form name="form1" id="form1" method="get" action="javascript: go();"> ページURL:http://www.google.co.jp/<input name="Url" id="Url" type="text" value=""><br> 用件:<textarea name="comment"></textarea><br> <input type="reset" value="取消"><input type="submit" value="送信"><br> ステータス確認用:<input name="state" type="text" value=""> </form> <form name="form2" id="form2" method="post" action="http://URL/mail/"> <input type="hidden" name="subject" value="問合せメール"> <input type="hidden" name="Url" value=""> <input type="hidden" name="comment" value=""> </form> </body></html>

  • firefoxでvalue取得に失敗する。

    firefoxでvalue取得に失敗する。 2回パスワードを入れさせるテキストボックスで、 下記のようなhtml,JavaScriptを書いております。 【sample.html】 <html><body> <form action="login.php" name="form1" method="post"> パスワード: <INPUT type="password" name="password" value"> <br> パスワード再入力: <INPUT type="password" name="password2" value=""> <br> <BUTTON type="button" name="btn1" id="btn1" onclick="clickbtn();">更新</button> </form> </body></html> 【sample.js】 function clickbtn() {  alert(form1.password.value);  alert(form1.password2.value);   if(form1.password.value != form1.password2.value){   alert("パスワードが違います");   return 1;   } } ボタンを押した時、IEでは意図通りにpasswordとpassword2に書かれた内容を 表示してくれるのですが、FireFoxではエラーがでます。 エラーコンソールの内容は「form1.password undefined」です。 パスワード用テキストボックスタグに id=password を追加、 パスワード再入力用のテキストボックスタグ id=password2 を追加する事で 意図した動作をfirefoxでも得る事が出来ましたが、 これはJavaScriptは、firefoxではタグをnameではなくidで区別すると解釈して良いのでしょうか? また、id値を追記する事で動きはしたのですが、エラーコンソールに 「グローバルスコープでIDまたはname属性値により要素を参照しています。  変わりにW3C標準のdocument.getElementByID()を使用してください。」 という警告が出まして、「id値追記するだけでよいのか?」と悩んでいます。 alert(document.getElementByID(”form1.password”)); という記述をしても警告が消えないので、警告文の通りにするのが正しいとも思えません。 firefoxへの対応を皆様がどのようにされているのか、教えていただきたく質問いたします。 宜しくお願いします。

  • リロードしないようにするには

    <FORM onSubmit="if (this.elements[0].value==m2[m]) {alert('正解です!')} else { alert('間違い'); return false;}"><INPUT type="text" value=""> <INPUT type="submit" value="入力後ここを押す"></FORM> このプログラムをhtmlに組み込んで実行すると 正解の時に、リロードというかhtmlファイルのあるサーバーにアクセスしてしまいます。 どうしてでしょうか? あまりサーバーに負担をかけたくないのでどうにかしたいのですが どうかお願いいたします。

  • フォームのname値を配列にしてJavaScriptでフォームのチェックをする方法

    JavaScriptでフォームの半角数字のチェックをしたいのですが、 form内容をCGI(PHP)に渡すためname値を配列にしないといけないのですが、 以下のスクリプトだとエラーが出てしまいます。 *実際はif(isNaN~)と<input~>をループで書き出しており、行数が不特定なので それぞれ別のname値を使うことができない状態です。 <script language="JavaScript"> function check() { if(isNaN(document.form1.hoge[0].value)){ alert("値は半角数字で入力してください。"); return(false); } if(isNaN(document.form1.hoge[1].value)){ alert("値は半角数字で入力してください。"); return(false); } return(true); } </script> <form method="post" action="xxx.cgi" onSubmit="return check()" name="form1"> <input type="text" name="hoge[0]"> <input type="text" name="hoge[1]"> </form> 特にCGIに渡す必要がなければ <input type="text" name="hoge"> <input type="text" name="hoge"> としてやればチェックができるのですが、どうしても次の 処理があるためname値を配列にする必要があります。 解決方法がわかる方がおられましたらご教授ください。 以上よろしくお願いいたします。

  • テキストボックス未記入時のアラート表示 JS

    【出来ていること】 下記のように電話番号の未入をチェックしアラートを出すことができました。 <script> function check3() { tel3check = document.form3.tel3.value; data13 = tel3check; if(!data13) { alert("電話番号が未入力です13"); return; } else { document.form3.submit(); } } </script> <form method="POST" action="in.php" name = "form3"> <input type="text" name="tel3" value="" /> <input type="button" value="確認" name="sub1" onclick="check3();"> </form> 【躓いていること】 電話番号の未入だけでなく、FAXの未入もチェックしそれぞれでアラートを出そうとしましたが動きません。ご指導いただけますでしょうか? よろしくお願いいたします。 <script> function check3() { tel3check = document.form3.tel3.value; fax3check = document.form3.fax3.value; data13 = tel3check; data133 = fax3check; if(!data13) { alert("電話番号が未入力です13"); return; } elseif(!data133) { alert("FAX番号が未入力です133"); return; } else { document.form3.submit(); } } </script> <form method="POST" action="in.php" name = "form3"> <input type="text" name="tel3" value="" /> <input type="text" name="fax3" value="" /> <input type="button" value="確認" name="sub1" onclick="check3();"> </form>

専門家に質問してみよう