• ベストアンサー

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

<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ファイルのあるサーバーにアクセスしてしまいます。 どうしてでしょうか? あまりサーバーに負担をかけたくないのでどうにかしたいのですが どうかお願いいたします。

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

  • ベストアンサー
  • hira6bg
  • ベストアンサー率61% (8/13)
回答No.2

いっそのことsubmitをやめちゃう方法もあります。 ○JavaScriptに正誤判定関数hanteiを追加 <head> <script language="javascript"> <!-- function hantei () { if(FM.INP.value=='答'){ alert('正解です!');} else{ alert('間違い'); } --> </script> </head> ○submitボタンをやめてただのボタンとし、ボタン押下でhanteiをキック <FORM name="FM"> <INPUT type="text" name="INP" value=""> <INPUT type="button" value="入力後ここを押す" onclick="hantei();"> </FORM>

その他の回答 (1)

回答No.1

正解の場合に return false; を通らないからです。 <FORM onSubmit="if (this.elements[0].value=='a') {alert('正解です!')} else { alert('間違い');}; return false;"> <INPUT type="text" value=""> <INPUT type="submit" value="入力後ここを押す"> </FORM>

関連するQ&A

  • ランダムに問題を出すプログラム

    ランダムに問題を出すプログラムを作ろうとしています。 合っていれば次の問題をランダムに、間違っていれば合うまで同じ問題を出したいです。 <SCRIPT language="javascript"> m1=new Array(); m2=new Array(); 中略 </SCRIPT> m=Math.floor(Math.random()*37) document.write(m1[m]); <FORM onSubmit="if (this.elements[0].value==m2[m]) {alert('正解です!')} else ( alert('間違い'))"> <INPUT type="text" value=""> <INPUT type="submit" value="入力後ここを押す"> </FORM> </SCRIPT> これだと、合っていても間違っていても次は新たにランダムで選ばれた問題がでます。 どういう処理をしたらいいでしょうか? どうかお願いいたします。

  • Macでのform-submitの動作

    いつもお世話になっています。 formのsubmitを押された際に、内容のチェックを行い、記入ミスがあれば、アラートで警告をだし、元のページに戻る処理を作ったのですが WinIe5だと、入力した項目はそのままですが、MacIe5だと、リロードされてしまい、入力した項目が消えてしまいます。 ソースは -----HTML----- <form name="myform" onsubmit="return check();"> :::::input の radioやselect等 ::::::: <input type="submit" value="送信"> </form> ------JS------ function check(){ if(内容が全て入力されている場合){ return true; } else{//入力されてない項目がある場合 alert("全ての項目を入力して下さい。"); return false; } } と、しています。 returnを消してみたり、locationを居れてみたりしたのですが、Macだと、リロードされてしまいます。 これは、MacIeの仕様なのでしょうか?それとも、環境設定で治るのでしょうか? (私は、Macには、詳しくありません。) 回避方法など教えていただければ、助かります。よろしくお願いします。

  • 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> ------- テキストエリアのアラートチェックは出来ない状態です。 すべてにチェックまたは、テキスト入力がされていないと送信できないようにしたいのです。 どうしたらよいでしょうか?

  • 3つテキストボックスすべてが未入力の場合アラートを出す方法(SUBMITボタンが3つある場合)

    3個あるテキストボックスの内、 すべてが未入力の状態でいずれかのボタンをクリックすると アラートを出すプログラムを作りたいと思うのですが、 上手くいきません。 (ボタンが一つの場合は上手くいくのですが、3つに増やすと反応がおかしくなります) 別処理として、半角数字以外の文字を入れてもアラートが出る様にも 作りたく思っております。 以下に製作中の内容を記します。 どなたか教えていただければ大変助かります。 ======================= <hmtl> <script language="JavaScript" type="text/JavaScript"> function ChkFormVal(theForm) { var num=0; var tempnum,temp,i; var no_of_items=theForm.elements.length-1; for(i=0;i<no_of_items;i++) { temp=theForm.elements[i].value; tempnum=parseInt(temp); if(isNaN(tempnum)==true) { if(temp!="") { theForm.elements[i].value=""; alert("ご注文数量を入力してください(1)。なお、数量は半角数字で入力してください。"); //alert("debug"); return false; } else tempnum=0; } num+=tempnum; } if(num==0) { alert("ご注文数量を入力してください。なお、数量は半角数字で入力してください。"); return false; } else return true; } //--> </script> <body> <form name="hirano" method="post" action="online.asp" onSubmit="return ChkFormVal(this)"> ■ご注文数量1 <input type="text" name="a1" size="5"> <input type="submit" name="Submit" value="お届け情報の入力へ"> ■ご注文数量2 <input type="text" name="a3" size="5"> <input type="submit" name="Submit" value="お届け情報の入力へ"> ■ご注文数量2 <input type="text" name="a4" size="5"> <input type="submit" name="Submit" value="お届け情報の入力へ"> </form> </body> </hmtl> ======================= ※実際作ろうとしているモノはテキストボックス・ボタンが100個程あります。 以上です 宜しくお願いします。

  • formのsubmitイベントの発生についての質問です。

    formのsubmitイベントの発生についての質問です。 あるところで、「form.submit() は submit イベントを発火しない」 とあったので、 ↓のscriptで、formのsubmitイベントを調べていました。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>SessionTestNext</title> <style type="text/css"></style> <script type="text/javascript"> function send1(elm){  elm.form.submit(); } function send2(){  document.getElementById("form1").submit(); } if('undefined' !== typeof document.addEventListener){  document.addEventListener('submit', function(event){   var target = event.target;   alert(target.id);  }, false); } else if ('undefined' !== typeof document.attachEvent){  document.attachEvent('onSubmit', function(event){  var target = event.srcElement;  alert(target.id);  }); } </script> </head> <body> <p>SessionTestNext 1 </p> <form id="form1" action="/php/session2.php" method="post" onsubmit="alert('Submited!');return false;"> <input type="text" name="parm2" value="fugafuga"> <input type="submit" value="サブミット"> <button onclick="send1(this)">Javascriptサブミット(1)</button> </form> <button onclick="send2()">Javascriptサブミット(2)</button> </body> </html> だのに、 send1()を実行した時は、イベントが検知され'Submited!'がアラートします。 ただし、onsubmitのハンドラーでfalseを返してるので、サブミットしません。 send2()を実行した時は確かに、submitイベントは発生せず、'Submited!'の アラート無しで、実際サブミットされます。 documentにaddEventListenerで追加したハンドラーの方でも、send1()の 時だけ検知され'form1'がアラートします。  send1()で検知されるのは何故でしょう? また、IEでも同様の動作なんですが、何故か document.attachEvent('onsubmit', の方が、まったく動きません。(タイポかも)

  • JavaScript動作仕様の変更!?

    以前は動作していたものが最近のIEパッチ(?)で動作しなくなった気がします。もし解決方法があれば教えて下さい! ------------------------------------- <HTML> <HEAD> <TITLE></TITLE> <SCRIPT type="text/javascript"> <!-- function test() { document.form.submit(); } function test2() { alert( "!!" ); return true; } --> </SCRIPT> </HEAD> <BODY> <FORM name="form" onSubmit="return test2()"> <INPUT type="button" value="おす" onClick="test()"> </FORM> </BODY> </HTML> ------------------------------------- 以前だと、JavaScriptでのsubmit()コマンドで、きちんとonSubmitイベントも動作していたハズなんですが、ここ数日でボタン部分を <INPUT type="submit" value="おす"> としないとonSubmitイベントが動作しなくなった様に思えます。ここ数日でWindowsUpdateした端末数台でチェックしましたが同様でした。

  • 複数のsubmitボタンで押されたボタンを取得する方法

    form内の、submitボタンの値が拾えません。 1つだけsubmitボタンを設置すると値が拾えますが、 2つ以上submitボタンを設置すると拾えません。 仕様上、無理なのでしょうか? <SCRIPT language="JavaScript"> function move_post(){ alert(document.frmMvPost.btn.value); } </SCRIPT> <FORM name="frmMvPost" action="" method="post" onsubmit="return move_post()"> <INPUT type="submit" name="btn" value="テスト1"> <INPUT type="submit" name="btn" value="テスト2"> <INPUT type="submit" name="btn" value="テスト3"> </form>

  • checkbox の入力チェックのやり方について

    お世話になります。 フォームにて、 javascriptで、入力チェックをおこないたいと思っています。 チェックボックスについては、どれか選択が一つでもなければ、アラートで、文字を出したいと思いますが、うまくできません。 チェックボックスの入力確認の方法を教えてください。 よろしくお願いいたします。 現在作りかけのソースは、下記の通りです。 <html> <head><title>-</title></head> <body> <form method="post" action="" onsubmit="return form_Validator(this)"> <input type="text" name="a1" size="15" maxlength="12"> <BR> <input type="checkbox" name="a1001" value="1"> <input type="checkbox" name="a1002" value="1"> <input type="submit" value="登録" name="submit"> </form> <script Language="JavaScript"> <!-- function form_Validator(doc) { if ( doc.a1.value == "" ) { alert( "BAD" ); return false; } /* a1001かa1002のチェックボックスのチェックがなければアラート----*/ return (true); } //--> </script> </body> </html>

  • javascript 要素取得

    htmlでチェックボックスを作り、その値をjavascriptで取得したいと思い、 下記のようなプログラムを書きました。 セレクトボックスから複数選択できるようにしたいのですが、 表示されるのは複数選んだ際に一番初めに選択したものだけです。  例) 「あああ」と「いいい」を選ぶと「あああ」のみ表示される。 しかし、これを「あああ.いいい」としたいのです。 できれば、 「あああ  いいい」 と改行できるといいです。 formの中にたくさんの項目があるため、 forのところがうまくいっていないのでしょうか? どなたかよろしくお願いします。 javascript側 function checkbox(){  var str="";  for(i=0;i<document.form1.elements.length;i++){   if(document.form1.elements[i].checked){     if(str != "") str = str + ".";     str = str + document.form1.document[i].value;   }  }  if(str == ""){   alert("入力してください");   return false;  }else{   document.form1.submit();  } } HTML側 <form action="<%=遷移先ページ%>" method="post" name="form1"> <select 複数> <input 複数> <input type="checkbox" name="document" value="・あああ"/>あああ <input type="checkbox" name="document" value="・いいい"/>いいい <input type="checkbox" name="document" value="・ううう"/>ううう <input type="submit" value="Submit" onclick="return checkbox();">

  • 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/>