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

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

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

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

Q&A

解決済

1回答

881閲覧

チェックボックスの処理について

lifeguard

総合スコア16

JavaScript

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

0グッド

0クリップ

投稿2018/05/18 09:28

javascript初心者です。
とあるゲームのダメージ計算シミュレータを作ろうとしているのですが、チェックボックスの制御が上手くいかず、困っております。

◆やりたいこと
特攻にチェックをつけて、計算ボタンを押下した時、攻撃の値を1.5倍にして計算を行い、結果を返してほしいです。

例)
攻撃30、防御に15を入力、特攻チェックON
⇒ダメージ30

 攻撃30、防御に15を入力、特攻チェックOFF
⇒ダメージ15

自分で色々と調べて試してはみましたが、どうにもうまく動きませんでした。
超初歩的な質問で申し訳ありませんが、ご教授の程よろしくお願い致します。

javascript

1<!DOCTYPE html> 2<html lang="ja" dir="ltr"> 3 4 <head> 5 <meta charset="utf-8"> 6 <title></title> 7 <link rel ="stylesheet" href="Form.css"> 8 <script type="text/javascript"> 9 10 function keisan() { 11  var x = parseFloat(document.myform.atk.value); 12  var y = parseFloat(document.myform.def.value); 13 14 //特攻処理 atk *1.5; 15 if(tokko==true){ 16 var x = x*1.5; 17 } 18 19  var ans= x- y; 20 if (ans <= 0){ 21 ans = 0; 22 document.myform.damage.value =ans; 23 } 24 else{ 25   document.myform.damage.value =ans; 26 } 27 } 28 29 </script> 30 </head> 31 <body> 32 <h1>ダメージ計算</h1> 33 <form name="myform"> 34 <table> 35 <tr> 36 <td>攻撃</td> 37 <td> 38 <input type="text" name="atk"> 39 </td> 40 </tr> 41 42 <tr> 43 <td>防御</td> 44 <td> 45 <input type="text" name="def"> 46 </td> 47 </tr> 48 </table> 49 50 <input type="checkbox" id ="tokko" value="true"> 特攻</input> 51 <input type="reset" value="クリア"> 52 <input type="button" value="計算" onclick="keisan(tokko)"> 53 54 <table> 55 <tr> 56 <td>ダメージ</td> 57 <td> 58 <input type="text" name="damage"> 59 </td> 60 </tr> 61 </table> 62 63 </form> 64 </body> 65</html>

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

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

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

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

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

guest

回答1

0

ベストアンサー

javascript

1function keisan() { 2 var x = parseFloat(document.querySelector('[name=atk]').value); 3 var y = parseFloat(document.querySelector('[name=def]').value); 4 x*=(document.querySelector('#tokko').checked?1.5:1); 5 var ans= x- y; 6 if(ans < 0) ans = 0; 7 document.querySelector('[name=damage]').value =ans; 8} 9

投稿2018/05/18 09:39

yambejp

総合スコア114572

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

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

lifeguard

2018/05/18 09:46

ご回答ありがとうございます。 ご教授頂いた方法で、やりたいことが実現できました。 迅速な回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問