• ベストアンサー

JSPでボタンを押したら、文字が出るようにしたい。

<%int i=0;%> <form> <input type="submit" value="私物回収" onClick=<%i=i+9;%>> </form> <%if(i>=10){%> <p>18になったよ。</p> <%}else{%> <p>9になったよ</p> <%}%> ソースはこんな感じに書いております。 1回クリックしたら、(9になったよ)って出て、2回クリックしたら(18になったよ)って出るようにしたいです。 今の状態だと、ボタンを押してないのに(9になったよ)って出てしまいます。 これをボタン押す前は何も出さず。押してから出るようにしたいです。 回答お願いします。

  • Java
  • 回答数1
  • ありがとう数9

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

  • ベストアンサー
noname#247307
noname#247307
回答No.1

<input type="submit">を使っていますよね。ということは、クリックしたら送信して、そのアドレス(おそらくこの状態では現在のページ)がリロードされます。 つまり、リロードされる段階で変数iなどはすべてまた初期状態に戻りますから、何度ボタンを押しても結果はかわりません。常に、ボタンをおす度に最初の<%int i=0;%>でiはゼロになり、その後の<%i=i+9;%>で9になって、それがそのまま結果につながります。 考え方としては2つあります。 1つは、JSPがどうとか考えず、すべてJavaScriptとして記述する、という考え方です。 もう1つは、値を<input type="hidden">などに保管しておき、送信したらその値をgetParameterで取り出して、その値を元に変数iを設定するようにする、というものです。あるいは、セッションなどに値を保管してもいいでしょう。 これは、フォームの送信やセッションについて理解していないといけません。そのあたりはすでにわかっていますか? わかっていなければ、そのあたりまで学習を進めて下さい。

nomnom20
質問者

補足

フォームの送信はHTMLをやっていたので、なんとなくわかってたのですが、 セッションスコープは中途半端に理解しただけで、実際にやってみても全然できませんでした。 JSPやサーブレットじゃなく、JAVAから勉強しなおそうと思います。 HTML&CSSで本をちょっと見ただけで、僕でもHP作れたことで調子にのってしまい、 JAVAも楽勝だろ~~いっちょゲーム作ってみっか~と思い手出してしまったら全然わかりませんでした。 ジャバスクリプトは今のところ考えていません。JAVAより難しそうですし・・・ JAVAに手出しつつ、違うのに手を出すと悪い頭が回らなくなってしまいます。 質問しておいて理解しないままあきらめるのは失礼ですが、 私は質問する前に、そもそもスキルが追いついてなく、JSP&サーブレットは予想以上に難しかったです。 回答してくださり、ありがとうございました。

関連するQ&A

  • sessionの値でボタンを活性・非活性(JSP)

    題記の通りなのですが以下のJSPを <form method="POST" action="TEST">  <% if (errmsg == "") { %> <input type="submit" class="button" value="クリック"> ⇒  ボタン活性  <% } else { %> <input type="submit" class="button" value="クリック"> ⇒  ボタン非活性  <% } %> </form> セッションより渡ってきたエラーメッセージにより ボタンを活性・非活性にするには どのように実装すればよろしいのでしょうか?

  • ボタンクリック-JSP判断

    JSP+Servlet+Beanで作ってます。 画面には、テキストとボタンが配置してます。 Aボタンクリックで、テキストに何にも 値が入ってない場合は別のHTMLに移動し、 何か値が入っている場合は テキストをクリアする処理をしたいのですが ・・・ <INPUT TYPE = "button" NAME="RTN" VALUE ="戻る" onClick= <% if(wk.getRtn_tmp()==1){ out.print ("location='http://localhost:8080/form.html'");} else{out.print ("location='http://localhost:8080/servlet/jyohoya.kanri_Srv'") ;} %>> 上記のように、JSPで判断させようと しています。 Beanでrtn_tmpというプロパティを セットしておいて、JSPのIF文で判断させようと思ったんですが・・・ <INPUT TYPE = "submit"・・・>にしておいて、Servletで Aボタンの処理判断をしないといけないのでしょうか。 しかし、JSPのonclick以下で判断ができても よさそうなのですが。。。指定の仕方がおかしいのかもしれません。

    • ベストアンサー
    • Java
  • クリックするとボタンの中の文字が変わるようにしたいんですが一応コードは出来たんですが・・うまくうごかなくて困ってます。

    java スクリプトのONCLICKについて質問があります。 ONCLICKのあとに何個もオプションはつけられないのでしょうか? <INPUT TYPE="button" VALUE=" " ONCLICK="form1.Q8.value += '1';" style="font-size:40pt"><br> にボタンをクリックするとボタンの中に「○」を表示するようにしたいんですが、うまくいきません・・・ 一応こう感じにつくってみたんですが・・・ <html> <head> <title></title> </head> <body> <script type="text/javascript"> function change_label(){ document.form1.label1.value = " ○ "; } </script> <form name="form1"> <input type="hidden" name="Q8" value=""><br> <input type="button" name="label1" value="クリックしてね" onclick="form1.Q8.value += '1';change_label();"> <input type="submit" name="Q9b" value="次へ" style="font-size:25pt"> </form> </body> </html> もしよろしければアドバイスいただけませんでしょうか・・・・

  • ボタンの2度押しを防止するには?

    Webページでボタンの2度押しを防止するにはどうしたらいいでしょうか? onClickでボタンをdisableにするようにしたところ、Submitしません。Disableにした上でSubmitさせるとパラメータが渡せません。 <HTML><BODY> <FORM method="get" name="MyForm" action="page2.html"> <INPUT type="submit" name="submit1" value="submit1" onClick="this.disabled = true;document.MyForm.submit();"> <INPUT type="submit" name="submit2" value="submit2" onClick="this.disabled = true;document.MyForm.submit();"> </FORM></BODY></HTML> 1つのFORM内に複数のボタンがあるため、どのボタンが押されたかがパラメータで渡される必要があります。

  • 複数ボタンのvalueを送れない

    ひとつのフォームで複数のボタンを使う方法を探していたら 次のような方法があるとのことでした。 <form method="post" name="MyForm"> <INPUT TYPE="BUTTON" VALUE="aaa" onClick="MyForm.action='hoge.cgi';MyForm.submit();"> <INPUT TYPE="BUTTON" VALUE="bbb" onClick="MyForm.action='hoge.cgi';MyForm.submit();"> </form> これで、ボタンによってVALUEを渡せるのかと思いきや、 飛んでいきませんでした・・・ 複数ボタンを用意して、ボタンによってその VALUE値を渡す方法がありませんでしょうか?

    • ベストアンサー
    • CGI
  • フォームボタンのvalueを渡すにはどうしたらいいのでしょうか?

    下記のソースのように「word」というテキストフィールドの 入力チェック後ボタンのvalueをword.phpに渡したいのですがどのようにしたらいいのでしょうか? 入力チェックをせず input type="button"ではなくinput type="submit" にするとword.phpに渡せるのですが・・・ ようはA、B、Cそれぞれのボタンを押した時で word.phpでbtnのvalueをPOSTで受け取り 処理をvalue A、B、Cで分岐させたいんです。 よろしくお願いします。 <html> <head> <SCRIPT language="JavaScript"> <!-- function chk(chkfrm){ var tmp = chkfrm.word.value.length; if(tmp > 50 ){ alert("文字数が多すぎます"); } else{ chkfrm.submit(); } } //--> </SCRIPT> </head> <body> <form name="form" method="post" action="word.php"> <input name="word" type="text" id="word"> <input type="button" name="btn" value="A" onclick="chk(this.form);"> <input type="button" name="btn" value="B" onclick="chk(this.form);"> <input type="button" name="btn" value="C" onclick="chk(this.form);"> </form> </body> </html>

  • 複数ボタンを制御出来る2度押し防止ボタン

    HTML5+CSS3でゲームを作っています。 フォームがあり、ボタンが複数並んでいます。 <SCRIPT TYPE="text/javascript"> <!-- function sendform(){ submitForm(); } function submitForm(){ document.form1.submit(); } // --> </SCRIPT> <FORM action="buy.cgi" method="post" name="form1" id="form1"> <button class="button8" type="submit" name="d4_buy" value="300 onclick="sendform()">300購入</button> <button class="button8" type="submit" name="d4_buy" value="400" onClick="sendform()">400購入</button> </FORM> 上記で正常に作動しますが、3G環境など通信状態の悪い時に、「300購入ボタンを押した直後に400購入ボタンを押す」と700購入が出来てしまいます。 【希望事項】 2つのボタンを連続して押しても2つ目が無効になるようにしたいというのが希望です。 ネットで調べたところ ****************************************** http://okwave.jp/qa/q627484.html ****************************************** <HTML><BODY> <FORM method="get" action="http://www.google.com/search"> <INPUT type="submit" value="submit1" onclick="this.form.q.value=this.value;this.disabled=true;this.form.submit()"> <INPUT type="submit" value="submit2" onclick="this.form.q.value=this.value;this.disabled=true;this.form.submit()"> <INPUT type="hidden" name="q" value="" > </FORM></BODY></HTML> ****************************************** という例があったため、この例に従って <SCRIPT TYPE="text/javascript"> <!-- function sendform(){ submitForm(); } function submitForm(){ document.form1.submit(); } // --> </SCRIPT> <FORM action="buy.cgi" method="post" name="form1" id="form1"> <button class="button8" type="submit" value="300 onclick="this.form.q.value=this.value;this.disabled=true;this.form.sendform()">300購入</button> <button class="button8" type="submit" value="400" onclick="this.form.q.value=this.value;this.disabled=true;this.form.sendform()">400購入</button> <INPUT type="hidden" name="d4_buy" value="" > </FORM> としてみたのですが、うまく数値の引き渡しが出来ません。(NULL となります) どのように改造すればいいか教えてください。 よろしくお願いいたします。

  • 選択したたラジオボタンの値をSUBMITボタンに

    選択したたラジオボタンの値をSUBMITボタンの名前として自動的に替えたいのですが、助言をいただけますか。 イメージは下記です。★の部分に、クリックごとにradioの値を入れたいのです。 <script Language="JavaScript"><!-- function set() { n = document.myFORM.Radio.value; } // --> </script> <FORM ACTION="add.cgi" METHOD="POST" name="myFORM"> <INPUT TYPE="RADIO" NAME="Radio" VALUE="東京" onclick="set()" CHECKED> <INPUT TYPE="RADIO" NAME="Radio" VALUE="大阪"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="★"></form>

  • 「戻る」ボタンを画像でするには?

    「戻る」ボタンを画像に置き換えたいのですが、どこをIMG SCRにおきかえればできるのですか? <form> <p> <input type="button" value="戻る" onclick="history.back()"> </p> </form>

  • 選択によってsubmitボタンの色を変える

    先程関連質問の回答をいただいた者なのですが、ラジオボタンの内容によってsubmitボタンの色を変えるところまで実現したいのですが、東京ならsubmitボタンはピンク、大阪ならsubmitボタンはブルーにしたいと思います。この場合は、submitボタンのところでIF文で分岐させればいいものでしょうか。 <html> <head> <script Language="JavaScript"> <!-- function set( n ) { document.myFORM.Submit.value = document.myFORM.elements[n].value; } // --> </script> </head> <body onLoad="set(0);"> <FORM ACTION="add.cgi" METHOD="POST" name="myFORM"> <INPUT TYPE="RADIO" NAME="Radio" VALUE="東京" onClick="set(0);" STYLE="background-color:pink" checked> <INPUT TYPE="RADIO" NAME="Radio" VALUE="大阪" onClick="set(1);" STYLE="background-color:blue"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="★" STYLE="background-color:pink"> </form> </body> </html>

専門家に質問してみよう