JavaScript だけでなくWEB作成が初心者なんですが教えてください。
http://www.tagindex.com/javascript/form/comp1b.h …
こちらのサイトを参考に自動計算できるものを作りたいと考えています。
商品は1つ。計算は単純に掛け算で、プルダウンではなく数字を入力したいと思います。
数字は最大500000まで入力する可能性があります。
金額の欄がすごくせまくなってしまったのと、入力するとNaNとなってしまいます。
以下を見ていただけませんか。
よろしくお願いします。
<html>
<head>
<title>計算</title>
<style type="text/css">
<!--
table {
border-collapse: collapse;
}
table, th, td {
border: 1px #808080 solid;
}
th, td {
padding: 3px 10px;
}
th {
background-color: #d3e9fa;
}
td {
background-color: #ffffff;
}
td strong {
color: #ff0000;
}
-->
</style>
<script type="text/javascript">
<!--
function keisan(){
// 設定開始
// 商品1
var price1 = document.form1.goods1.selectedIndex * 105; // 単価を設定
document.form1.field1.value = price1; // 小計を表示
// 合計を計算
var total = price1;
// 設定終了
document.form1.field_total.value = total; // 合計を表示
}
// -->
</script>
</head>
<body>
<form action="#" name="form1">
<table>
<tr>
<th>商品名</th>
<th>単価</th>
<th>数量</th>
<th>金額</th>
</tr>
<tr>
<td>商品サンプル</td>
<td align="right">105円</td>
<td><input type="text" name="goods1"></td>
<td><input type="text" name="field1" size="8" value="0"> 円</td>
</tr>
<tr>
<td align="right" colspan="3"><strong>合計</strong></td>
<td><input type="text" name="field_total" size="8" value="0"> 円</td>
</tr>
</table>
<input type="button" value="計算する" onClick="keisan()">
</form>
</body>
</html>
No.1ベストアンサー
- 回答日時:
var price1 = document.form1.goods1.selectedIndex * 105; // 単価を設定
ここですが、サンプルのところから持ってきたのだと思いますが、selectindexは、セレクタで選ばれているものを取得しますので、テキストボックスの場合はvalueで取得します。
余談ですが、これはJSなのでページ遷移などないですが、CGIなどでデータをポストする場合はフォームに入れた数値は、半角数字であってもテキストとして扱われます。
なので、
var price1 = parseInt(document.form1.goods1.value) * 105; // 単価を設定
とするようなクセを付けておいたほうがいいかもしれないです。(冗長と嫌がる人もいるかもしれないですが。。。)
parseIntは調べてみてくださいね。
頑張ってください。
早々にご回答いただきましてありがとうございました。初めて質問したのですが、すごいですね。
selectindexは、セレクタで選ばれているものを取得しますので、テキストボックスの場合はvalueで取得します。と、的確なアドバイスをいただき無事うごくようになりました。大変お世話になりました。もっとわかるように勉強したいと思いました。ありがとうございます。
No.2
- 回答日時:
> 金額の欄がすごくせまくなってしまった
金額の <input> を修正してください。
案1: size の値をもっと大きい数にする
案2: 数量の <input> と同様に size を書かない
案3: <output name=field_total></output> に変換する、ついでに <td align=right> とする
> 入力するとNaNとなってしまい
document.form1.goods1.selectedIndex が間違いです
案1: parseInt(document.form1.goods1.value) ← 数量は必ず整数
案2: parseFloat(document.form1.goods1.value) ← 数量に半端な数を認める
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画面表示とともにtableの指定の...
-
jQueryで合計を出したい
-
文字数を数える際に空白、改行...
-
複数のselect値で1つも選択され...
-
ボタンクリックでフォーカス移動
-
チェックボックス付きのテーブ...
-
画面の2重起動をチェックする...
-
ラジオボタンとテキストボック...
-
プルダウン選択を変更すると、...
-
onchangeイベントを強制的に発...
-
select要素のvalueを配列で取得...
-
度胸試しのJavaScript
-
動的なセレクトボックスの生成...
-
プルダウン 項目が多いので先頭...
-
return trueとreturn falseの用...
-
<JavaScript>tableタグを入力不...
-
メールフォーム:「必須項目」...
-
正規表現で複数マッチ条件で悩...
-
フォームの入力チェックをする...
-
テキストボックス入力を半角英...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
画面表示とともにtableの指定の...
-
JavaScriptの「.querySelectorA...
-
Javascriptの電卓で最初の何も...
-
localStorageでのcheckbox制御
-
文字数を数える際に空白、改行...
-
テーブル内のチェックボックス...
-
クリックしたラジオボタンの行...
-
複数のselect値で1つも選択され...
-
jQueryで合計を出したい
-
送信ボタン連打を抑止したいです
-
ラジオボタンが選択されたらテ...
-
ラジオボタンを一括で操作する...
-
formで項目を連結したい
-
javascriptで表(テーブル)の自...
-
同一nameの input type="text"...
-
動的に生成されるラジオボタン...
-
ボタンクリックでフォーカス移動
-
JavaScriptによる自動計算フォーム
-
選択したテーブルのセルの背景...
おすすめ情報