アフィリエイト広告を利用しています

広告

posted by fanblog

2021年05月08日

計算結果をコピーできるボタンを設置する/ブログでJavaScriptで計算

前回記事で、javascript を使ってブログの記事内で計算できる「計算ページ」のようなものを作ることは、そんなに難しくないことが分かりました。
   ↓
 ブログの記事内でJavaScriptを使って計算できるようにする

SC20210508174828.png


上の画像は前回記事で作ったもので、とりあえず javascript を使って計算できるかを確認するだけのものなので、見た目とか何とかしたいところですが、今回は機能を優先することにします。
追加する機能は、計算結果をコピーできるボタンの設置です。
これができれば、計算結果を別のアプリに貼り付けることができるので、少し便利になります。



計算結果コピーボタンを追加した計算フォーム


A:
B:


A+B=
A×B=



↑ ここに計算のためのフォームのコードと、JavaScript のコードを入れています。
JavaScript は表示されず、計算のためのフォームだけが表示されています。
追加したのは、見た目では[A+Bの答えをコピー]ボタンと[A×Bの答えをコピー]ボタンで、表示されない JavaScript にボタンをクリックしたときの処理を書き加えています。
AとBに数値を入力して[計算]ボタンをクリックすると計算結果が表示され、2つのコピーボタンをクリックすると、計算結果がクリップボードにコピーされるはずです。



変更したコードの解説(フォーム)


上で設置した計算フォームのコードは、↓ このようになっています。


<form action="#" name="calformTasuKakeruV2">
A:<input type="text" name="a" value="">
B:<input type="text" name="b" value="">
<input type="button" name="keisan" value="計算" onClick="calTasuKakeruV2();">
<input type="reset" name="reset" value="クリア">
A+B=<input type="text" id="ans1" value="">
A×B=<input type="text" id="ans2" value="">
<input type="button" value="A+Bの答えをコピー" onClick="AnsCopy1();">
<input type="button" value="A×Bの答えをコピー" onClick="AnsCopy2();">

</form>

赤色部分が今回変更または追加した部分です。


1)フォームと JavaScript の名前に「V2」を追加
計算フォームと[計算]ボタンで呼び出す JavaScript の名前は、前回記事で使ったものと同じだと JavaScript がどちらか判断できないので、「V2」を加えることで、別のフォームと別の JavaScript として扱うようにしています。


2)計算結果の name を id に変更
計算結果をコピーする2つのボタンをクリックしたときに、JavaScript で計算結果をコピーする処理を書いていますが、そのときにどの値をコピーするかを id でしていするため、name を id に変更しています。


3)計算結果をコピーするボタンのコードを追加
最後の2行に、計算結果をコピーするボタンのコードを追加しています。
それぞれのボタンのコードの最後の onClick="AnsCopy1();" と onClick="AnsCopy2();" で、計算結果をコピーする JavaScript を呼び出しています。



変更したコードの解説(JavaScript)


今回の JavaScript のコードは、↓ このようになっています。


<script language="javascript">
function calTasuKakeruV2()
{
// フォームで入力したデータABを変数に代入
inputValueA = document.calformTasuKakeruV2.a.value - 0;
inputValueB = document.calformTasuKakeruV2.b.value - 0;

// 変数を使って計算
ans1 = inputValueA + inputValueB;
ans2 = inputValueA * inputValueB;

// 計算結果をフォームに出力
document.calformTasuKakeruV2.ans1.value = ans1;
document.calformTasuKakeruV2.ans2.value = ans2;
}
// 計算結果をコピー
function AnsCopy1() {
var copyTarget = document.getElementById("ans1");
copyTarget.select();
document.execCommand("Copy");
}
function AnsCopy2() {
var copyTarget = document.getElementById("ans2");
copyTarget.select();
document.execCommand("Copy");
}

</script>

赤色部分が今回変更または追加した部分です。


1)JavaScript と フォームの名前に「V2」を追加
フォームの説明で書いたように、前回記事の JavaScript と フォームと名前が重複しないようにするため、それぞれの名前に「V2」を追加しています。


2)計算結果をコピーするコードの追加
「// 計算結果をコピー」の下に加えたのが、計算結果をコピーするコードです。
[A+Bの答えをコピー]ボタンの処理を function AnsCopy1() に、[A×Bの答えをコピー]ボタンの処理を function AnsCopy2() に書いています。


3)var copyTarget = document.getElementById("ans1");
フォームで計算結果の name を id に変更しましたが、その計算結果 id="ans1" を変数 copyTarget に指定してしています。


4)copyTarget.select();
クリップボードにコピーするために、3)で指定した変数 copyTarget を選択しています。


5)document.execCommand("Copy");
3)と4)で選択したコピー対象を、このコードでクリップボードにコピーしています。



その他


フォームと JavaScript は、ブログの中で重複しないように名前を付けること、クリップボードにコピーする対象は name じゃなくて id で名前を付けるという点に注意すれば、今回のコピー機能追加は難しくないと思います。
まだ、改良したいところがいくつかあるので、次回以降の記事で書いていきます。


JavaScript で計算ページ関連記事の一覧

にほんブログ村 IT技術ブログ フリーソフトへ
この記事へのコメント
コメントを書く

お名前: 必須項目

メールアドレス:


ホームページアドレス:

コメント: 必須項目

この記事へのトラックバックURL
https://fanblogs.jp/tb/10712062

※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
ブログ内を検索
ファン

最新記事
カテゴリー
最新コメント
ツイッター
広告設置のお知らせ

当ブログは、Amazonアソシエイト・プログラムの参加者です。
(Amazonアソシエイト・プログラムは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムです)
記事内で使用している画像の一部は、Amazonの商品画像を使用しており、その商品へのリンクになっています。

また、その他のアフィリエイト・サービス・プロバイダなどの広告も表示しています。
当ブログをご覧の際は、cookie を有効にし、Webブラウザの広告ブロック機能を使用しないで、ご覧いただきますようにお願いいたします。

プロフィール
ぽん太親父さんの画像
ぽん太親父
建築関係の小さな事務所で、他に適当な人間がいないことから、コンピューター関連の担当をさせられています。 趣味でけっこう長い間パソコンを使っていますが、ちゃんと勉強していないので、うまくいかなくて冷や汗をかくこともしばしば。
プロフィール
×

この広告は30日以上新しい記事の更新がないブログに表示されております。