• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サブミットで送信させない)

サブミットで送信させない方法とは?

このQ&Aのポイント
  • ジャバスクリプトやサーブレットの勉強をしている中で、サブミットで送信した際に画面が飛んでしまう問題に直面しました。
  • 様々な方法を試しましたが、ジャバスクリプトが機能しなくなったり、ページが遷移してしまったりとうまくいきませんでした。
  • 空の場合はアラートを表示し、それ以外の場合には画面遷移を行わずにデータを送信したいと考えています。アドバイスをお願いします。

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

  • ベストアンサー
回答No.3

あーごめん。 データ送信だけってそういうことね。俺こそ良く見ろって話だ・・・ で、それはJavaScriptでAjaxという技術を使わないと駄目。 Ajaxを簡単に利用するためにjQueryというライブラリを利用するのが早いかな。 これを追加 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script type="text/javascript"> function ajaxTest() { $.get ( '../HelloWeb', { aaa: '送信される内容' }, function ( response ) { alert ( '送信したよ'); } ); } </script> ajaxTest()を呼び出すと../HelloWebに対してgetにてaaaというパラメータ名でリクエストを投げる。 このとき画面の遷移はされないよ。 また違った技術を学ばないとだから大変かも

gomadango27
質問者

補足

ありがとうございます!! まだまだ勉強しないとってことですね>< 根本的に考え方が違っているのかもです・・・ もう一度考え直して だめそうだったら 新たにAjax勉強したいと思います!ありがとうございました^^

その他の回答 (2)

回答No.2

よく見てね。 <form method="get" action="../HelloWeb" onsubmit="return sta()">とするべき。

gomadango27
質問者

お礼

勉強になりました ありがとうございます

gomadango27
質問者

補足

<%@page contentType="text/html; charset=Windows-31j"%> <html> <head> <H1>入力画面</H1> <script type='text/javascript'> <!-- function sta() { var naiyou = document.getElementsByName('aaa')[0].value; if(naiyou == '') { alert('空です'); return false; } } // --></script> </head> <body> <form method="get" action="../HelloWeb" onsubmit="return sta()"> <INPUT type='text' name='aaa'> <INPUT type='submit' value='クエリ送信' ><br> <br> </form> </body></html> にしたところ アラートがバッチリ表示されます!!すごい・・・ まだまだ勉強不足ですね。 文字を入力すると やっぱり画面遷移が行われます・・・ if(naiyou == '') { alert('空です'); return false; } else { return false; } としても画面はHelloWebにいってしまいます。 データだけ送信とは可能なのですか??

回答No.1

まずsubmitはページが遷移するのは当たり前という認識を持ってね。 次に<input type="submit">は既にsubmitの機能を持ってるからonclickで指定しちゃダメ。 <form method="get" action="../HelloWeb" onsubmit="return sta()">とするべき。 でJavaScriptでは if ( naiyou === '' ) { alert ( '空です' ); return false; } とし、エラーがあった場合はreturn false;をするようにすること。 そうするとonsubmitでその戻り値を使用しているのでfalseが返ってくればsubmitは実行されない。

gomadango27
質問者

お礼

勉強になりました ありがとうございます

gomadango27
質問者

補足

回答ありがとうございます ソース変更して実行してみました <%@page contentType="text/html; charset=Windows-31j"%> <html> <head> <H1>入力画面</H1> <script type='text/javascript'> <!-- function sta() { var naiyou = document.getElementsByName('aaa')[0].value; if(naiyou == '') { alert('空です'); return false; } } // --></script> </head> <body> <form method=get action="../HelloWeb"> <INPUT type='text' name='aaa'> <INPUT type='submit' value='クエリ送信' onsubmit='return sta()'><br> <br> </form> </body></html> このように変更してみたのですが 画面遷移がおこなわれ ページ移動してしまいます・・・ onsubmitにすると アラートが表示されなくなり 今まで使っておりませんでした データだけ送信とはこんなに難しいものなんですね><勉強不足です