質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

425閲覧

テキストボックスに整数をいれたときにボックスの上に出てくる「購入個数が0です。」の文字を表記しないようにしたい。

MUSUBINON

総合スコア11

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2022/09/23 14:20

編集2022/09/23 14:25

独学で勉強中の初心者です。
JavaScriptで注文フォームを作っています。
クリック以外のイベントを利用するというコードを練習しています。

実現したいこと

1以上の数字を入力したときに出てくる「購入個数が0です。」の文字を消したいです。

発生している問題・エラーメッセージ

  • 1以上の数字を入力したときにしたに「購入個数が0です。」と表記されます。

本来0以下の入力時に右側に赤色背景のテキストボックスで表示されるようにコードを入力したのですが、1以上をいれると、違う場所に「購入個数が0です。」と表示されてしまいます。
エラーメッセージ
コンソールでのエラーメッセージはありませんでした。

該当のソースコード

コード <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>10日で覚えるJavaScript</title> <style> table{border: solid 1px orange; border-spacing: 0px;} th,td{border: solid 1px orange; padding: 4px;} .outer{width: 328px; text-align: center;} .prod_list{text-align: center;} ul{list-style-type: none; background: gold; padding: 4px;} li{text-align: left;} [type = "button"],[type = "submit"]{margin: 16px;} #basket{width: 300px; margin: auto;} .empty_basket{border: dotted 6px darkcyan; background: black; padding: 8px;} .filled_basket{border: dotted 6px green; background: yellow; padding: 8px;} .groupbox{position: relative;} .desc_show{font-size:12px; background: cyan; padding: 4px; position:absolute; left: 330px; top:220px; width:120px;} .desc_hide{display: none;} .alert_show{font-size: 12px; background: red; color: white; padding: 4px; position: absolute; left:330px; top:200px; width: 120px;} .desc_hide{display: none;} </style> <script> window.addEventListener('load', //ページロード時の処理 function (event){ var elem = document.getElementById('btn_addprod'); elem.addEventListener('click', addProduct, false); elem = document.getElementById('txt_amount'); elem.addEventListener('focus', amount_gotFocus, false); elem.addEventListener('blur', amount_lostFocus, false); elem.addEventListener('keyup',amount_keyup, false); } ,false); //btn_addprodクリック時の処理 function addProduct(event){ var basket = document.getElementById('basket'); basket.className = 'filled_basket'; //選択されたオプションを取得 var product = ' '; var options = document.getElementsByName('products'); for(var i=0; i< options.length; i++){ if(options[i].checked){ product = options[i].value; break; } } //個数を取得 var tbox = document.getElementById('txt_amount'); var amount = tbox.value; //値を設定 basket.innerHTML += '<p>' + product + ' ' + amount + '個</p>'; } //フォーカス取得時のメッセージ表示 function amount_gotFocus(event){ var desc = document.getElementById('desc_amount'); desc.className = 'desc_show'; } function amount_lostFocus(event){ var desc = document.getElementById('desc_amount'); desc.className = 'desc_hide'; } //入力チェック function amount_keyup(event){ var amount = event.currentTarget.value; var alert = document.getElementById('alert_amount'); if(amount >0){ alert.className = 'alert_hide'; }else{ alert.className = 'alert_show'; } } </script> </head> <body> <h1>商品購入フォーム</h1> <div class="outer"> <form> <ul class="prod_list"> <li><input type="radio" name="products" value="none" checked>なし</li> <li><input type="radio" name="products" value="リラックスチェア" >リラックスチェア</li> <li><input type="radio" name="products" value="リラックスデスク" >リラックスデスク</li> <li><input type="radio" name="products" value="ブックスタンド" >ブックスタンド</li> </ul> <input type="text" id="txt_amount" value="0">個 <input type="button" id="btn_addprod" value="▼add"> <div id="desc_amount" class="desc_hide"> 購入個数を入力してください(1以上)。</div> <div id="alert_amount" class="alert_hide"> 購入個数が0個です。</div> <div id="basket" class="empty_basket"> </div> <input type="submit" value="購入"> </form> <div> </body> </html>```

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

CSS.alert_hideを作成していないからではないでしょうか。

投稿2022/09/23 14:45

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MUSUBINON

2022/09/23 14:50

ありがとうございました! .alert_hideを作成したら消えました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問