• ベストアンサー

変数の値によってsubmit後の動作を変更する

サブミットで送った値が正しければwindow.openでサブウィンドウを開き、間違っていればalertでメッセージを出す、というふうなことは可能なんでしょうか? サブミットボタンにonclickイベントでwinopenを組み込んでいたんですが、それだと値が間違っているときでもサブウィンドウが開いてしまうので… よろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

<form onsubmit="return check()"> として function check(){ if(値を調べて正しい){ window.open(…); return true; } else { alert("message!"); return false; } }

oinari5
質問者

お礼

丁寧にありがとうございます。自分で解決できました。

その他の回答 (1)

  • FLA-SE
  • ベストアンサー率32% (33/103)
回答No.1

onclickイベントで値をチェックする関数を呼びだします。 (もちろんチェックする関数を自分で作ってください。戻り値はtrueとfalseにします) 戻り値がtrue(チェックOK)⇒サブウィンドウオープン 戻り値がfalse(チェックNG)⇒alert いかがでしょうか?

oinari5
質問者

お礼

ありがとうございました。自分で解決できました。

関連するQ&A

  • javascriptで開いたウィンドウに値を渡す

    JavaScriptのwindow.openで開いたページに値を渡したいのですが 複数項目ある場合はどうすればいいでしょうか? ▼下記のようなページです。 http://ausdruck.flier.jp/test/window3/oya.html open1ボタンを押すとサブウィンドウのテキストフィールドにその値が入ります。 ひとつだけならできたのですがopen2,open3,open4,open5というふうにそれぞれ違う値を サブウィンドウに渡す事ができません、if文などを使えばよろしいでしょうか? どんな方法でもいいのでご存知の方ご教授お願い致します。

  • submitの値取得に

    sea_clear_skyです。 [環境] Win98SE PWS フォームに名前が同じ二つのサブミットのボタンを作成します。 そして、飛んだ先のASPのファイルで、サブミットのボタンのV ALUEの値で、IF文で、処理を分岐したいのですが、 Reqest("サブミットボタン名.Value")で 値を取得することができません。 また、hiddenのボタンを作り、サブミットの値を入れて移していますが うまくいきません。 ご教授願います。 [ソース] Response.write"<form action =""ASPファイル"" method=""POST"">" フォームの中身は省略 Response.write"<input type=""submit""value=""更新"" name=""syouhin"">" Response.write"<input type=""submit""value=""次へ"" name=""syouhin"">" Response.write"<input type=""reset""value=""リセット"" name=""syouhin"">" Response.write"<input type=""hidden"" name=""kakushi""value=""&syouhin.value&"">" 飛んだ先のASPファイルのデータ表示 response.write request("shouhin") response.write request("kakushi")

  • 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', の方が、まったく動きません。(タイポかも)

  • window.openで同画面遷移しない

    window.openで別窓でウィンドウを開き、開いたウィンドウは親ウィンドウにあるリンク1、リンク2、リンク3をクリックすると別窓で開いたウィンドウが同画面遷移で変わるようにしたいのですが、IEで各リンクをクリックすると新規ウィンドウが立ち上がってしまいます。Firefoxでは問題ないのですが。 <head>~</head>内に以下のjavascriptを書きました。 <script type="text/javascript"> <!-- function winOPEN(URL,winName) { window.open(URL, 'window1', 'width=400, height=300, menubar=no, toolbar=no, scrollbars=yes'); } // --> </script> またリンクのhtmlは以下のようにしました。 <ul> <li><a onClick="winOPEN('URL','window1')" title="" href="#">リンク1</a></li> <li><a onClick="winOPEN('URL','window1')" title="" href="#">リンク2</a></li> <li><a onClick="winOPEN('URL','window1')" title="" href="#">リンク3</a></li> </ul> どこがいけないのでしょうか。教えてください。

  • javascriptでフォームに値を渡す

    javascriptでサブウィンドウを開き、親ページにあるフォームの値をサブウィンドウのテキストフィールドに渡す方法で複数項目がある場合、下記URLのようにラジオボタンならうまくいったのですが ラジオボタンなしで、ボタンを押すと直接その値をサブウィンドウに渡す方法はないでしょうか? 複数項目ある値をサブウィンドウに渡す(ラジオボタン) http://ausdruck.flier.jp/test/window11/oya_11.html 上記URLの方法ならうまくいったのですが下記URLのようにボタンを押してその値を 直接サブウィンドウに渡したいとおもっています。 http://ausdruck.flier.jp/test/window3/oya.html ▲こちらのイメージで渡したいのですが、複数項目があるとうまくいきません。

  • 親ウィンドウのフォームの値を変更

    showModalDialogでオープンした子画面から、returnValueで値を返すのとは違う方法で、親ウィンドウのフォームの値を変更したいと思っています。 (その子画面をオープンすると同時に、親ウィンドウのフォーム値を変更したいため) その際に    window.opener.document.formA.hiddenA.value = "aaa" という風に記述しているのですが、「window.opener.documentはオブジェクトではありません」というエラーになってしまいます。window.openで開いた子画面からだと、この方法でできたと思うのですが・・・どうすれば変更できるでしょうか?そもそも、showModalDialogでオープンした画面から親ウィンドウの値を変更すること自体がダメなのでしょうか? よろしくお願いします。

  • フォームのPOSTデータをサブウィンドウに渡したいです。

    フォームのPOSTデータをサブウィンドウに渡したいです。 <form action="sample.html" method="post"> <input type="checkbox" name="test[]" value="0">0 <input type="checkbox" name="test[]" value="1">1 <input type="checkbox" name="test[]" value="2">2 <input type="checkbox" name="test[]" value="3">3 <input type="checkbox" name="test[]" value="4">4 </form> 上記のフォームの値を、サブミットボタンを押したときにサブウィンドウをひらき、そのサブウィンドウに渡したいのですが、いまいち上手くいきません。 window.openでサブウィンドウを開いてもデータが受け渡せずにいます。 このような場合、どうしたら値を渡せるのでしょうか。 理想はPOSTで渡したいのですが、引数で渡す方法でもかまいません。

  • Firefoxでvalueの値を変更できない

    フォームの値を通常 <input name="Reload" type="hidden" value="1" id="Reload" /> で飛ばしていますが、サブウィンドウで操作後識別のために window.opener.document.getElementById('Reload').value=2 と値を変更するようにしていました。 しかし、IE6では動くのですがFirefoxでは値が変更できずに悩んでいます。 良い解決法があればよろしくお願いいたします。

  • ウィンドウが閉じようとしていることを知るには?もしくは、×をつかってウィンドウをとじれなくするには?

    いつもお世話になります。 表題のとおりなのですが、 Window.open でサブウィンドウを開いて、そのウィンドウが閉じられたことをリアルタイムに知るにはどうすればいいでしょうか? サブウィンドウのunloadイベントハンドラを使用してみましたが、ブラウザの×を押されるとイベントハンドラに通知がきません。 確実にウィンドウが閉じられることを知る方法はないでしょうか? よろしくおねがいします

  • サブウィンドウを表示させたいのですが・・・

    こんにちわ。 ちょっとした(といっても、ワード文書1ページ分)説明をサブウィンドウで表示させたいのですが、 できません。 以下がソースです。 <メインウィンドウ> <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- function winOpen(winName,url,W,H){ //サブウインドウオープン var WinD11=window.open(url,winName,'scrollbars=1,width='+W+',height='+H+''); WinD11.document.close() } //--> </SCRIPT> </HEAD> <BODY> <A HREF="javascript:function voi(){};voi()" onClick="winOpen('','link1.html',400,200)"> この文字をクリックすると説明ウインドウ1が開きます </A> </BODY> 何が間違ってるのかご指導いただけないでしょうか? よろしくお願いいたします。m(__)m