• ベストアンサー

BackSpaceしたい(QNo.2734284のやつ)

http://oshiete1.goo.ne.jp/qa2734284.html を見たのですが、よく、分かりません。 簡単な電卓を作っていて、 テキストボックス内で、「backspace」ボタンを押すと、 文字が後ろから、一個ずつ、減っていくようにしたい。 javascriptどういう数式を書けば、 文字数を一個減らした文字列を代入できるのか、分かりません。 方法を教えてください。

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

  • ベストアンサー
  • t_wada
  • ベストアンサー率50% (3/6)
回答No.2

こんな感じでどうでしょうか? // キー入力を掴むイベントハンドラ document.onkeydown = function () { // 押されたキーコードが0x08(BackSpace)の時かつ、 // テキストフィールドにフォーカスが当たっていない場合 if (event.keyCode == 0x08 && event.srcElement.type != "text") { // BackSpaceキーを押された時の処理 pushBackSpase(); // BackSpaceキーの処理(前ページへ遷移)を無効とする return false; } } function pushBackSpase(){ // 末尾1文字削除して挿入 document.f.into.value=document.f.into.value.substr(0, document.f.into.value.length - 1); }

kapox
質問者

お礼

どうもありがとう。

kapox
質問者

補足

自分の考えていたものよりも、画期的なものでした。 間違えた所に、マウスをあわせて、その一つなら、削除できるのが、 すごかったです。 「Backspace」ボタンを押すと、一番後ろの文字が削除されると、 いうのが、自分の考えだったのですが… キーボードの「Backspace」キーで 自然な動きが出来るほうが、いいと、思いました。 これ以上の議論は、自分のjavascriptの勉強不足もあるし、 おおやけの議論としては、達したと考えて、解決としたいと思います。 t_wadaさん、他のなやんでくれた方々、ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>サンプル</title> </head> <body> <!-- 赤い部分に入力。テキストボックスからフォーカスが無くなった時一文字減らした文字列を代入するようにした--> <p><input type="text" onBlur="this.value = this.value.substring(0,this.value.length - 1)" value="" style="background-color:red;" /></p> </bodpy> </html>

kapox
質問者

補足

<html> <head> <title>電卓</title> <script type="text/javascript"> <!-- function push(alpha){     document.f.into.value=document.f.into.value+alpha; } //--> </script> <script language="JavaScript"> <!-- function calc() { f.ans.value = eval(f.into.value); } // --> </script> </head> <body> <form name="f"> 計算式:<br> <input type="text" name="into" size="40" style="font-size:20; text-indent:20;"><br><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="button" value=" 1 " style="height:30; width:30; font-size:20;" onClick="push('1')"> <input type="button" value=" 2 " style="height:30; width:30; font-size:20;" onClick="push('2')"> <input type="button" value=" 3 " style="height:30; width:30; font-size:20;" onClick="push('3')"> <input type="button" value=" 4 " style="height:30; width:30; font-size:20;" onClick="push('4')"> <input type="button" value=" 5 " style="height:30; width:30; font-size:20;" onClick="push('5')"><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="button" value=" 6 " style="height:30; width:30; font-size:20;" onClick="push('6')"> <input type="button" value=" 7 " style="height:30; width:30; font-size:20;" onClick="push('7')"> <input type="button" value=" 8 " style="height:30; width:30; font-size:20;" onClick="push('8')"> <input type="button" value=" 9 " style="height:30; width:30; font-size:20;" onClick="push('9')"> <input type="button" value=" 0 " style="height:30; width:30; font-size:20;" onClick="push('0')"><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="button" value=" + " style="height:30; width:30; font-size:20;" onClick="push('+')"> <input type="button" value=" - " style="height:30; width:30; font-size:20;" onClick="push('-')"> <input type="button" value=" * " style="height:30; width:30; font-size:20;" onClick="push('*')"> <input type="button" value=" / " style="height:30; width:30; font-size:20;" onClick="push('/')"> <input type="button" value=" . " style="height:30; width:30; font-size:20;" onClick="push('.')"> &nbsp;&nbsp; <input type="button" value=" ( " style="height:30; width:30; font-size:20;" onClick="push('(')"> <input type="button" value=" ) " style="height:30; width:30; font-size:20;" onClick="push(')')"> <br> <br> 計算結果:<br> <input type="text" name="ans" size="40" style="font-size:20; text-indent:20;"><br> <br> <input type="button" value="計算" style="height:30; width:100;" onClick="calc()"><br> <br> <input type="reset" value="リセット" style="height:30; width:100;"><br> </form> </body> </html> で、場合によってはエラーが出るんですが、 xhtmlとか、難しいのは使わなくて、 上のテキストボックスを打ち損じた時に、「backspace」ボタンで、 訂正できるようにしたいと思って、質問しています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • BackSpaceしたい

    firefox使っています。 フォームのTEXT表示においてclickボタンで 後から1文字ずつ削除したいです。 (キーボードのBackSpace) できますでしょうか?

  • テキストエリアへの記号代入

    こんにちは。以下、ご回答いただければ幸いです。 日頃、PHPカテゴリにてお世話になっておりますが、以下のようなものを作りたいと考えているのですが、その流れ(仕組)が分からず、 http://oshiete1.goo.ne.jp/qa2749334.html にて同じような質問があったので、今回javascriptにて投函させていただきました。宜しくお願いいたします。 上記、URLと同じなのですが、流れのイメージとして、テキストエリアに文字を入力している際、入力途中でテキストエリア外に設置のボタン(アイコンなど)を押したとき、その押したボタンに埋め込んである?記号などを、テキストエリアでの入力途中に引き継いで記号文字列を代入したいと考えています。 適切な説明が上手く出来ないのですが、例えば、テキストエリアにおいて、 こんにちは と入力したとき、テキストエリア外に設置のボタンを押すことで、 こんにちは[a:1] と、このようにしたいのです。 色々なイメージを描いておりますが、テキストエリア内にカーソルがあるとき、一旦テキストエリアの外のボタンを押して、また元のカーソルの位置に戻すには?とか、ボタン(アイコン)に設定の記号文字列を代入するには?と、一向に具体的なイメージがつかめずにいる次第です。 お忙しい中恐縮ですが、ご指導頂戴出来れば幸いです。宜しくお願いいたします。

  • テキストボックスに入力された内容を他のテキストボックスにコピーしたい

    テキストボックスA、Bがあるとして、テキストボックスAに何らかの文字列を入力します。 その状態でボタンを押すと、テキストボックスAの内容をテキストボックスBにコピーするようにしたいのですが、このようなことはjavascriptで可能でしょうか?

  • リスト追加

     HTML画面で、テキストフィールドに文字を入力し、 ボタンを押すと、入力した文字列がリストボックスに追加されるJavaScriptを作りたいのですが、良くわかりません。  いろいろ、JavaScriptのサイトに行って、  探してみましたが、そういったサンプルが見当たりません。  どうか、お教えください。おねがいします。

  • INPUT type=file で出るダイアログに入力で窓を確実に取得したい。

    http://oshiete1.goo.ne.jp/qa4624451.html でダイアログボックスへの文字列の挿入を実現して います。 sendkeysのターゲットを確実に取得したいのですが どうすればいいでしょうか? 時々、違う窓にsendkeysしてしまいます。

  • 多分簡単なJavaScriptなんだと思います。

    JavaScript初心者です。 チェックボックスが5つ有り、任意のチェックボックスをチェックして実行ボタンを押すと、sentakuという名前のテキストボックスにチェックしたボックスの値が代入されるjavascriptの記述を教えて下さい。 例えば、1番目と3番目と5番目に、チェックを入れて実行すると、テキストボックスsentakuには「1,3,5」と表示されるとベターです。

  • 文字列をプログラムコードとして実行する方法

    Flash及びActionScriptの初心者です。 Flashで計算機のようなものを作成したいと思っており、 具体的な作りとしてはユーザに数式を入力してもらい、 回答ボタンで答えが表示されるというものです。 例えば、入力可能なテキストボックスに 「(5+3)*2」と入力しボタンを押下すると「16」が表示されるというようなものです。 以下質問です。 (1)入力された数式を文字列として格納した後に回答を出させる方法には  どのようなものがありますでしょうか。  (四則演算と括弧を対応させた場合の作りが解らないです・・・) (2)javascriptのeval関数の使用で対応可能でしょうか。  getURL、fscommand、ExternalInterfaceについて調べたのですが、  動的に戻り値を受け取る事どころか、  外部からjavascriptを呼び出す事すらできませんでした。 開発環境 FlashLite3.0 ActionScript2.0 情報足りない場合は補足しますので、どうかよろしくお願いします。

    • ベストアンサー
    • Flash
  • Visual Basic 6.0 のテキストボックスの最大容量について

    Visual Basic 6.0での質問です。 VB6.0で標準で利用できるテキストボックスに、文字列をTextに代入する際、65536文字以上の文字を入れようとすると、65535文字までしか入りません。 これは回避できないのでしょうか? もしできるのならどのようにすれば良いのか、教えてください。お願いします。

  • 複数のテキストボックスに同時入力したい!

    WIN8 access2003 毎回お世話になります。 今回は自動車用記録簿の入力フォームを作成しております。 メインフォームにサブフォームを儲け、そのサブフォームに80個のテキストボックス (txt1~txt80)があります。 入力の際にtxt1,txt5,txt8に”レ”txt2,txt20,txt21は”×”の様に複数のテキストボックス に同じ文字列を代入しようと下記の方法を考えています。 (1)テキストボックスをクリックして背景色を変える (2)”×”入力用コマンドボタンを押して背景色の変わったテキストボックスに”×”を代入 (3)代入したら全てのtxtboxの背景色を戻す の様な方法が良いかなと考えていますが、やり方が分からず困っています。 他の良い方法もありましたら宜しくお願い致します。

  • 入力に応じて有効化をするJavaScript

    テキストボックスに1文字でも入力があった時のみラジオボタンを選択可能にし、テキストボックスに入力されるまではラジオボタンを無効化したいと思っています どのようにJavaScriptを書けばいいか全くわかりません お願いします