• 締切済み

入力した瞬間に1を引く方法

<input type="text" name="page" size="6"> 上のタグで入力し、下のタグで「表示」をクリックする前に1を引く方法ってないでしょうか? 「51」を入力したら「50」と入力した事にしたいです。 <input type="submit" name="search" value="表示"> よろしくお願いします。

  • HTML
  • 回答数3
  • ありがとう数1

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

回答ではありませんが… ご質問のようにすると、入力した人が自分の入力ミスと間違えて再度入力するという誤解が生じることはありませんか? >「51」を入力したら「50」と入力した事にしたいです。 入力値を利用して何らかの処理をするのだと想像しますが、その処理側で-1してあげれば済むことではないでしょうか。入力欄は入力者が入力したままの値を残しておいたほうが、後で入力値の確認をすることなども含めて便利かと思います。

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

アクティブから離れたらでよいのでは? <script> function check(obj){ var num=parseFloat(obj.value); obj.value=(isNaN(num))?"":num-1; } </script> <input type="text" name="page" size="6" onblur="check(this)">

  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.1

実装とは関係ないのですが、 表示をクリックする前に差し引くと入力した方が混乱しませんか? とりあえず、入力中の時には差し引けないので、 入力フォームからフォーカスが離れた時に作業をすることになると思います。 <script type="text/javascript"><!-- function plusnumber(){ var thisid = document.getElementById('inputval').value; if(thisid.match(/^[0-9]+$/) && thisid > 0){ thisid = thisid - 1; } else{thisid = 0;} document.getElementById('inputval').value = thisid; } --></script> <form> <input type="text" name="page" size="6" onBlur="plusnumber();" id="inputval"> <input type="submit" name="search" value="表示"> </form> 上記で指示を出しているのは onBlur="plusnumber();" です。 フォーム値を抜き出したり、書き込んだりするために、 id="inputval" をつけています。 入力後に、直接「表示」ボタンをクリックすることも考えられるし、 冒頭に書いたように、入力したものが勝手に変わることで混乱する ことも考えられるので、 <form onsubmit="plusnumber();"> <input type="text" name="page" size="6" id="inputval"> <input type="submit" name="search" value="表示"> </form> として、送信する時点で、書き換えるように formに onsubmit="plusnumber();" を追加し、フォームには id="inputval" のみ追加のほうが好ましいのではないかな。と思いますが、 判断は私がすることではないので、このくらいにしておきます。

関連するQ&A

  • 入力制限アラートと送信制限

    以下のフォームが合った場合に (1),や@や*、バカ等の文字など文字入力があった場合にアラートで表示する方法がわかりません。参考になるようなサイトやアドバイスをお願いします。 また、 同時にsubmitボタンが2度押しできないようにするにはどうしたらよいでしょうか? <form action="./***" method="POST" name="check"> <input type=text name=data1 value="0" size=30> <input type=text name=data2 value="0" size=30> <input type=text name=data3 value="0" size=30> <input type=submit value="送信する"> </form>

  • フォームへの前回入力値をクリアーする方法は?

    以下のコードでフォームへの前回入力値を保持しています。 送信前は"RESET"ボタンで入力値をクリアーできますが、送信後は入力値をクリアーできません。(RESETボタンをクリックしても送信済$_POSTが表示されます)おそらくブラウザのキャッシュで$_POSTの値が保持されているためと思われますが、何らかのボタンクリックでこれらの$_POST値をクリアする方法をご存知に方、是非ご教授ください。 <?php $yyyy=$_POST[Y]; $mm=$_POST[M]; $dd=$_POST[D]; ?> <FORM action="<?=$_SERVER[PHP_SELF]; ?>" method="post" > <P>YYYY<INPUT size="10" type="text" name="Y" value="<?= $yyyy;?>"></P> <P>MM<INPUT size="10" type="text" name="M" value="<?= $mm;?>"></P> <P>DD<INPUT size="10" type="text" name="D" value="<?= $dd;?>"></P> <INPUT type="submit" name="submit" value="送信"> <INPUT type="reset" name="reset" value="reset"> </FORM>

    • ベストアンサー
    • PHP
  • JavaScriptで入力チェック

    ////サンプル//// <p><input type="text" value="" name="box_1" /></p> <p><input type="text" value="" name="box_2" /></p> <p><input type="text" value="" name="box_3" /></p> <p><input type="text" value="" name="box_4" /></p> Javascriptで入力チェックをして 入力がされていたらpタグとinputタグの間に「○」を表示させたいのですが どのように実装したら良いでしょうか? ・inputタグは4つだけではなくたくさんあります ・DBを使っているのでページを更新しても○が消えないようにしたいです よろしくお願いします!

  • テキストを値として渡したいんですが。

    HP上に表示しているテキストをクリックすると その値をPHP等に渡せるようにしたいんですが。 <FORM method="post" action="text.php"><INPUT size="20" type="text" name="text" value="テキスト"> <input type="submit" name="submit" value="検索"> </FORM> 上記のようなタグを挿入して、ボタンをクリックするとPHPを呼び出すのではなく あくまでテキストそのものをクリックすると そのテキストと同一の値が渡せるようにしたいんです。 PHPのカテゴリで質問するのかどうか悩んだんですが HTMLのカテゴリに質問してみました。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • PHPで求めた変数をHTMLで使う方法

    HTMLのformタグで与えた引数を元に、ある値をPHPで求めた後、その求めた変数をHTMLに戻って使う方法をご教授下さい。 例えば、 index.html ↓↓↓ <form action="submit.php" method="post"> <input type="text" name="xxxxx"> <input type="text" name="yyyyy"> <input tyoe="submit" value="実行"> </form> <textarea name="answer"> 実行後ここに、下のPHPで求めた$zzzzzを表示したい。 </textarea> 上のHTMLでxxxxxとyyyyyを入力して実行ボタンを押します。 そしてPHP側は、 submit.php  ↓↓↓ $zzzzz = $_POST["xxxxx"] . "は、" . $_POST["yyyyy"] . "です。"; このように求めた$zzzzzを上のHTMLに戻って表示したいのですが、しばらく調べてみても見つかりませんでした。 どなたかご教授下さい、お願いします。

  • 訪問者が入力したテキストを指定した箇所に挿入する方法を探しています

    訪問者が入力したテキストを指定した箇所に挿入する方法を探しています。 動作イメージとしましては、 <div>↓挿入文字<br /> <input size="20" type="text" name="01" value="りんご" /> → <input type="submit" value="変換" /></div> <div>↓変換後<br /> <input size="20" type="text" name="02" value="123りんご999" /></div> まず、挿入文字用のinput(name=01)内に訪問者が「りんご」と入力し、 「変換」ボタンをクリックします。 すると、出力用のinput(name=02)に、 訪問者が入力した「りんご」の含まれる文字列が生成される、という形です。 実際のソースは、出力用のinput(name=02)は予め 「<input size="20" type="text" name="02" value="123##挿入文字##999" />」 このように挿入文字の挿入位置を指定できるものとします。 拡張子がhtml・PHPのファイルで利用予定なので JavaScriptでこのようなことができたら、と考えています。 私なりに調べてみましたが 変換後に挿入される文字が予めJavaScript側で指定するものばかりで 訪問者が入力したテキストを変換・挿入するコードが見つかりませんでした。 ご存知の方がいらっしゃいましたら、 お教えいただけると幸いです。 よろしくお願いします。

  • suggest.jsに関する質問

    入力補完ライブラリのsuggest.jsを使って検索したいと思っています。 補完候補は表示できたのですが、その候補語で検索できません。 http://www.enjoyxstudy.com/javascript/suggest/ 下記フォームでは検索ボタンをクリックすればsearch.phpに移行しました。 <form method="POST" action="search.php"><input type="text" size="10" name="key"><input type="submit" value="検索"></form> しかしながら下記フォームだと検索ボタンをクリックしてもページ移動せず何も起こりません。 <form method="POST" action="search.php" onsubmit="return false;"><input id="text" type="text" name="key" autocomplete="off" size="10" style="display: block"><input type="submit" value="検索"><div id="suggest"></div></form> どこがおかしいのでしょうか?

  • 指定のinputに入力

    恐れいります。 <form action="./xxx.cgi" method="POST"> <input type="text" name="name1"> <input type="text" name="name2"> <input type="text" name="name3"> <input type="text" name="name4"> <input type="text" name="name5"> <input type="submit" value="送信"> </form> と、5つの入力欄があり、別ウィンドウから、指定の場所に代入することは可能でしょうか。例えば、name1のエリアに、別ウィンドウからformで「test」という文字を送信して入力する感じです。 よろしくお願いします。

  • formタグ

    HTMLで、formを使用し、CGIへテキストエリアのデータをpostしたいと 考えております。 テキストエリアを3つ、ボタンを1つ設けるならば 通常以下のようにすると思います。(必要部分の抜粋) <form action="foo1.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行"> </form> こうすると、実行ボタンをクリックすると、text1、text2、text3のテキストエリアに 記述されているテキストが送信されますが、ここにボタンをもう一つ設け、 上記3つのデータを別のCGIに送信したいのですが、 この場合どのようにHTMLを記述したらよいでしょうか? 新たに下記のようにformタグを設けると、テキストエリアは6つになってしまいますし。。。 <form action="foo2.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行2"> </form> どなたか分かる方情報頂けますか。

    • ベストアンサー
    • HTML
  • submitについて

    <script type="text/javascript"> <!-- function go() { document.getElementsByTagName("input")[3].value+="text"; } //--> </script> <form name="NAME1" action="#" method="get" onSubmit="go()"> <input type="submit" name="submit1" value="送信1" > <input type="submit" name="submit2" value="送信2"> <input type="button" name="submit3" value="送信3" onClick="go()"> <input type="text" name="text1" size="10"> </form> なのですが、送信2のsubmitを4回クリックすると以下のように表示されるのですが、どういう感じで実行されているのかわかりませんので教えていただけないでしょうか? 一応一回目はtext1=textとなるのですがテキストボックスには空になります。 2回目はtext1=textとなりテキストボックスにはtextが入ります。 3回目はtext1=texttextとなりテキストボックスには空になります。 4回目はtext1=textとなりテキストボックスは空になります。 以上よろしくお願いします。

専門家に質問してみよう