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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

JavaScript

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

6115閲覧

【HTML】【JavaScript】でボタンをクリック→「クリック時の時間+テキスト」を表示する機能が作りたい。

kaikiki

総合スコア0

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

JavaScript

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2020/06/14 06:49

前提・実現したいこと

Html,JSで出勤、退勤を確認するようなシステムを作っています。
詳しく言うと、
出勤ボタンをクリックするとtextareaに「クリックしたときの時間+出勤」と表示され、
退勤ボタンをクリックするとtextareaに「クリックしたときの時間+退勤」と表示される機能です。
しかし今までこのような機能を実装したことがなく実装することができません。

なお、ボタンを何度クリックしても無限にテキストが表示されるようにしたいです。
イメージ説明説明](3984436a44dd5ee8741b85996fc8840e.jpeg)

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

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

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

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

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

guest

回答1

0

おおざっぱに、作ってみました。参考になれば幸いです。
https://codepen.io/new1ro/pen/vYLKdwB


HTML

1<div class="flex"> 2 <div class="btn-group"> 3 <button type="button" id="btn-01">出勤</button> 4 <button type="button" id="btn-02">退勤</button> 5 </div> 6 <div class="text-group"> 7 <div class="text-item"> 8 <span class="time" id="text-01"></span> 9 <span class="label">出勤</span> 10 </div> 11 <div class="text-item"> 12 <span class="time" id="text-02"></span> 13 <span class="label">退勤</span> 14 </div> 15 </div> 16</div>

CSS

1.flex { 2 display: flex; 3} 4.btn-group button { 5 display: block; 6} 7 8/* 時間 (.time) が空の場合、その弟要素(.label) を透明にする。 */ 9/* 最終的にはJavaScriptで.activeなどのクラスを付与する、などの実装が望ましい */ 10.text-item > .time:empty + .label { 11 opacity: 0; 12}

JS

1// 出勤ボタンをクリックしたときの処理 2document.getElementById('btn-01').addEventListener('click', event => { 3 // 現在の日時を取得 4 var now = new Date(); 5 6 var month = now.getMonth() + 1; 7 var day = now.getDate(); 8 var time = now.getHours() + ':' + now.getMinutes(); 9 10 // テキストの内容を更新 11 document.getElementById('text-01').innerText = month + '/' + day + ' ' + time; 12}); 13 14// 退勤ボタンをクリックしたときの処理 15document.getElementById('btn-02').addEventListener("click", event => { 16 // 現在の日時を取得 17 var now = new Date(); 18 19 var month = now.getMonth() + 1; 20 var day = now.getDate(); 21 var time = now.getHours() + ':' + now.getMinutes(); 22 23 // テキストの内容を更新 24 document.getElementById('text-02').innerText = month + '/' + day + ' ' + time; 25});

上記JavaScriptについては
「出勤ボタンをクリックしたときの処理」と「退勤ボタンをクリックしたときの処理」の処理はほぼ同じなので、まずは片方だけ見て内容を理解してください。

new Date();が肝心なところです。


紙に書かれた仕様だと、数字が1桁のときに「08」「01」などの表示にしたり、曜日を表示しようとしたりしていますが、その点については以下を参照に実装してみてください。

JavaScriptで日付や時間の0詰めを実装する | tagamidaiki.com
https://tagamidaiki.com/javascript-0-chink/

曜日の表示などは、以下を参考に実装してみてください。
JavaScriptで日時、曜日を取得する方法

投稿2020/06/14 10:09

編集2020/06/14 10:11
new1ro

総合スコア4528

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問