JavaScriptの入力履歴について

このQ&Aのポイント
  • JavaScriptの入力履歴について質問があります。フォームの入力で履歴を記憶し、次回から履歴一覧が表示されるようにしたいです。
  • 参考Aと参考BのJavaScriptの違いを教えてください。私が作りかけているJavaScriptでは履歴が記憶されません。
  • 急いでいるので、回答をお願いします。IE11を使用しています。
回答を見る
  • ベストアンサー

Javascriptの入力履歴について。

Javascript 始めたばかりです。 フォームの入力で、入力欄にデータを入れて「Enter」キーを押すと、履歴が記憶され、 次回から履歴一覧が出るようにしたいのですが、 「Enter」キーを操作して履歴を記憶できるもの (参考A) http://www.pori2.net/js/form/1.html?txtb=500 と「Enter」キーが作動しないものがあるようです。 (参考B) http://js.k-sakabe.com/calc_input.html 両者の違いはどこにありますか。 ちなみに私が作りかけているJavascriptは、(B)と同じで、履歴が記憶されません。 (A)のようにしたいのです。 初歩的な質問で申し訳ないですが、急いでいるものですから、よろしくお願いします。 IE11です。

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

  • ベストアンサー
  • hymat
  • ベストアンサー率58% (95/162)
回答No.1

それはJavaScriptとは関係ありません。 フォームで入力履歴が記憶されるのは、IEで言うところのオートコンプリート機能です。JavaScriptではなくてブラウザーが記憶しているのです。IE以外のブラウザーでも同様になっています。 IEの場合は「インターネットオプション」「コンテンツ」で、オートコンプリートの「設定」を開き、「フォーム」にチェックが付いていれば、フォームをsubmit(サーバーに送信)するたびに入力履歴が記憶されます。 また、参考Aと参考Bでは入力項目の数が違います。enterキーを押すと、入力項目(type="text"のinputタグ)が1つしかない参考Aはsubmitされますが、3つある参考Bはされません(https://www.softel.co.jp/blogs/tech/archives/3614 参照)。よって、参考Bでは入力値が記憶されません。 参考Bの場合でも参考Aのように入力値を記憶させたいならフォームをsubmitすれば良いので、フォーム内にtype="submit"を付けたinputタグを配置するなどが必要です。 ただし、submitするとページは再表示されることになる点には、ご注意ください。

関連するQ&A

  • JavaScriptでのWebフォーム送信について

    JabsScriptの勉強を始めたばかりの初心者です。 自分で使っているオリジナルのスタートページに Mapion(地図サイト)のシンプルな検索窓をつけようと思っているのですが、 Mapionは現在、特殊な仕様になっていて、例えば、 「新宿区新宿1-1-1」の地図を見たいというときには、 URLでいうと「http://www.mapion.co.jp/s/q=新宿区新宿1-1-1/」 という形でなければダメで、 htmlのみで<form>タグを使ってGET送信する形にすると、 どうしても、「http://www.mapion.co.jp/s/?q=新宿区新宿1-1-1」となってしまい、 これでは、余計な「?」が入ってしまうのと、最後に「/」がない為、 地図を表示してくれないのです。 そこで、JavaScriptを使って以下のように書いてみたところ、 一応動くようにはなったのですが、 テキストボックスに地図を見たいところの住所を入力した後に、 一回、Tabキーを押下するなりしてフォーカスを送信ボタンに移してから Enterキーを押さないと動作してくれません。(下記ソース1参照) 住所入力後にテキストボックスにフォーカスがある状態でエンターキーを押下しても きちんと内容が送信され地図が表示されるようにしたいのですが、 どうしたらいいでしょうか? 自分なりにいろいろ調べて試行錯誤していますが、どうもうまくいきません。 ■ソース1 <html> <!-- Mapion --> <form name="js"> <input type="text" name="txtb" value="" size=50> <input type="button" value="Mapion" onclick="textbox()"> </form> </html> <script> function textbox(){ var url = "http://www.mapion.co.jp/s/q=" +document.js.txtb.value + "/" ; window.location.href = url } </script> ■ソース2 ↓onkeydownを使ってテキストボックスでEnterキーが押されたら 動作するように書いてみたつもりですが、これだと動きません。 <html> <!-- Mapion --> <form name="js"> <input type="text" name="txtb" value="" size=50 onkeydown="go();"> <input type="button" value="Mapion"> </form> </html> <script> function textbox(){ var url = "http://www.mapion.co.jp/s/q=" +document.js.txtb.value + "/" ; top.window.location.href = url; } function go(){ if(window.event.keyCode==13)textbox(); } </script>

  • cgiへのパラメータについて

    htmlのformで入力した名前をcgiで受け取ると"encstr"となります。 エンコードした文字列を受け取るにはどのようにすれば良いか教えてください。 <form name="js"> お名前:<input type="text" name="txtb" value=""><br> <input type="button" value="送信" onclick="gogo()"><br> </form> <script type="text/javascript" language="javascript"> <!-- function gogo() { var str1=document.js.txtb.value; var encstr = encodeURI(str1); document.write('<img src="/cgi-bin/gogo.cgi?namae=encstr">'); } // --> </script>

  • javascript内からのsubmit

    PHP初心者です。 javascript内でsubmitを行い、値をPHP内で受け取る想定ですが、うまく作動しません。 具体的には下記のソースで、// Aの処理に入ってきて欲しいのですが、//B に入ってきます。 初歩的なことのなのかもしれませんが、どこが間違っているのか分からずはまっています。 ご教授ください。 ソースは以下です。 ■JavaScriptとForm(admLogin.html) <script type="text/javascript" src="js/jquery-1.9.0.min.js"></script> <script type="text/javascript"> function fncLogin(){ $("#frmAdmLogin").submit(); } </script> <body> <form id="frmAdmLogin" action="admLogin.php" method="post"> <input type="text" id="txtAdmId" /> <input type="text" id="txtAdmPass" /> <input type="button" name="btnLogin" value="ログイン" onclick="fncLogin()"/> </form> </body> ■PHP(admLogin.php) <?php if(isset($_POST['btnLogin'])) { // A }else{ // B } ?> ログインボタン押下 ↓ fncLogin内からフォームをsubmit ↓ // A の処理に入ってくる想定なのですが、//B の処理が実行される。 ちなみに、ボタンのinput typeをsubmitにすれば//A の処理に入ってくるのですが、 javascript内からsubmitしたいため、困っています。 どこを間違えているのでしょうか。。

    • 締切済み
    • PHP
  • javascriptのアラートの表示方法について

    javascript初心者です。 javascriptで、計算機を作っていて、数字を入れずに 「=」(計算)ボタンを押すと、 「未入力です」とアラ-トで表示させたいのですが、 やり方がわかりません。 お手数ですが、ご教示下さい! よろしくお願いします!! ※以下、私が作成したものです。 この中のどの部分に、どのような表記をいれたら良いのか、 教えてください。。 <html>   <head>    <title>計算機</title>   <script type="text/javascript">     function Calc() {    var a;    var b;    var c;    var ope;        a = parseInt(document.form1.textA.value);    b = parseInt(document.form1.textB.value);    ope = parseInt(document.form1.selOpe.value);        switch (ope) {   case 1:c = a + b;    break;   case 2:c = a - b;    break;   case 3:c = a * b;    break;   case 4:c = a / b;    break;   default:   break;    }    document.form1.textC.value = c;    }   </script>    </head>     <body>     <form name="form1">      <INPUT TYPE="text" NAME="textA">       <select name="selOpe" size=1>       <option value="1">+</option>       <option value="2">-</option>       <option value="3">×</option>       <option value="4">÷</option>       </select>        <INPUT TYPE="text" NAME="textB">         <input type="button" name="cmdCalc" value="=" onclick="Calc()">        <INPUT TYPE="text" NAME="textC">     </form>     </body> </html>

  • htmlのテキストボックスに書かれた文字によって

    htmlのテキストボックスに書かれた文字によって表示する文字を変えたいのですが、コードがいまいちどうやって書いていいかわからないのでコードを教えて下さい。よろしくお願いします。 一応できなかったコード↓ <Form name="js"> <input type="text" name="txtb"> </Form> <script> <br> if(document.js.txtb.value="a"){document.write("a")} </script>

  • JavaScriptの計算式を添削してください。

    250×変数A+200×変数B+150×変数C=合計という 計算をしたくて過去の質問をヒントに自分なりに工夫して 作成いたしました。(JavaScriptは超初心者) 変数A~Bには整数が入ります。 自分で動作を確認したところ問題無く動くようですが、 何か問題がないか心配です。 これでいいのか、間違っているところがないか 確認願いますでしょうか。 <HTML> <HEAD> <SCRIPT language="JavaScript"> <!-- function calc() { document.f.t4.value = eval(250) * eval(document.f.t1.value)+eval(200) * eval(document.f.t2.value)+eval(150) * eval(document.f.t3.value); return true; } //--> </SCRIPT> <TITLE></TITLE> </HEAD> <BODY> <FORM name="f"><INPUT type="text" name="t1" onkeyup="calc()" value="0"><INPUT type="text" name="t2" onkeyup="calc()" value="0"><INPUT type="text" name="t3" onkeyup="calc()" value="0"> = <INPUT type="text" name="t4"></FORM> </BODY> </HTML>

  • [javascript] Dexagogoが動きません・・・。

    こんにちわ。 このたび、下記URLにあるjavascriptを作動させようと悪戦苦闘しております・・・。 Really easy field validation * Dexagogo http://tetlaw.id.au/view/javascript/really-easy-field-validation 入力確認を行なうスクリプトで具体的には以下のURLのような動作を致します。 http://tetlaw.id.au/upload/dev/validation/ が、しかし全く動いてくれません・・・。 原因特定のため、無駄なタグをどんどん削っていきましたが、依然動作せず・・。 参考までにソースを添付致します。 <html><title>入力チェック</title> <head> <script src="scriptaculous/lib/prototype.js" type="text/javascript"></script> <script src="scriptaculous/src/effects.js" type="text/javascript"></script> <script type="text/javascript" src="fabtabulous.js"></script> <script type="text/javascript" src="validation.js"></script> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <form action="#" method="get" id="test"> <br> <label for="field1">Name</label>:<input name="field1" id="field1" class="required" title="Enter your name" /> <br> <input type="submit"> </form> </body> </html> ご存知の方、お助けいただけると幸いです。

  • ボタンを用いたフレームのリンクについて

    フレームで右と左に分割していて左のフレームで数字を入力して計算と書かれたボタンを押すと右のフレームに計算結果を表示する方法がわかりません。 具体的なソースとしては まず、フレーム分割部分は <html> <head> <title>計算機</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <Frameset cols="25%,*" Frameborder="yes" Scrolling="auto"> <frame src="calc.html" NAME="hidari"> <frame src="calc.php" NAME="migi"> </frameset> </html> このようになっていてcalc.htmlは <html> <head> <title>calc.html</title> </head> <body> <form name="form1" action="calc.php" method="post"> <input type = "text" name = "txtA"> +  <input type = "text" name = "txtB"> = ?  <br> <input type="submit" value="計算"> </form> </body> </html> このようになっておりcalc.phpは <html> <head> <title>calc.php</title> </head> <body> <?php $a = $_POST['txtA']; $b = $_POST['txtB']; $c = $a + $b; print ($a." + ".$b." = ".$c."\n"); ?> </body> </html> このようになってます。 現在は計算ボタンを押すと左フレームにcalc.phpが表示されるのでこれを右フレームに表示させたいです。 どなたか詳しい方お願いします。

    • ベストアンサー
    • HTML
  • JavaScriptで入力文字制限

    こちらのページ {AllAbout:JavaScriptで入力文字制限!(入力チェック)} http://allabout.co.jp/internet/hpcreate/closeup/CU20050620A/index2.htm を参考に、入力内容をチェックしてくれるフォームを作成しようとしています。 しかし、私の環境(IE7)では、このページの例えばふりがな入力(ひらがな・カタカナのみ有効)で「123」と入力しEnterキーを押すとアラートが2度表示されてしまいます。これと同じ現象が私の作っているページでも発生しています。 フォーカスを失ったときにチェックをするというのは変えずに、Enterを押したときにアラートを1回しか表示させないようにするにはどうすれば良いのでしょうか。よろしくお願いします。

  • JavaScriptの値を、cgiに渡す方法を教えてください。

    JavaScriptの値を、cgiに渡す方法を教えてください。 jsファイルの変数に、テキストボックスの入力値が入っています。 それを、cgiに渡して、その変数の値を、ファイルに 書込みたいと考えています。 __test.html_________ <head><script src="keep.js"></script></head> <form name="f1" action="keep.js"> <input type="text" name="a_text"> <input type="button" value="クリック" onclick="keep()"> </form> _________________________ ___keep.js_______________ function keep() { var a_text = document.f1.a_text.value; ■この変数「a_text」をcgiファイルに渡したいです。 } __________________________ __●.cgi_______________ ■なんだかの方法で、上記keep.jsの変数、a_textを取得して、 この●.cgiでファイルをopenして、a_textの値を 書込みたいです。 ______________ よろしく、お願いします。