![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつもお世話になっています。
単価を選んで、利用量を入力して、積を表示するWEBページの作り方教えてください。
単価を選んで a に表示するところまでは出来ています。
単価a と 使用量x から 合計金額ax を求めたつもりが、undefined と表示されてしまいます。
どこを修正すればよいのか、教えて下さい。
<p>
<select name="a_select" onchange="a_out(this,'a');">
<option selected value="0">サービス内容を選択してください</option>
<option value="11">[サービス名11]</option>
<option value="12">[サービス名12]</option>
<option value="13">[サービス名13]</option>
<option value="14">[サービス名14]</option>
<option value="15">[サービス名15]</option>
<option value="16">[サービス名16]</option>
<option value="17">[サービス名17]</option>
</select>
単価:<span id='a'>10</span> 円/個
使用量<input type="number" id="x" onchange="cal_ax('a','x','ax');">個
計<span id='ax'></span> 円</p>
<script language="JavaScript">
function D(s) { return document.getElementById(s)};
function a_out(obj,A) {
var idx = obj.selectedIndex;
var value = obj.options[idx].value;
D(A).innerHTML = value;
}
function cal_ax(A,X,AX) {
var a = D(A).value;
var x = D(X).value;
var ax = parseInt(a)*parseInt(x);
D(AX).innerHTML = a;
}
</script>
No.1ベストアンサー
- 回答日時:
こんにちは
>を求めたつもりが、undefined と表示されてしまいます。
計算の手順は合っているようですが、タイポだったり、取得できない属性を取得しようとしているようです。
>D(AX).innerHTML = a;
要素AXに表示するつもりなのは、変数axの内容ではないですか?
>var a = D(A).value;
要素D(A)はspan要素のはずですが、span要素には通常value属性はありません。
ですので、いきなりvalue属性を取得しようとしても、undefinedが返されます。
D(A).textContent
で取得するか(←あまりお勧めではありません)、あるいは、元となっているセレクト要素の値を取得するのが宜しいでしょう。(←こちらがお薦めです)
なお、ご質問には直接関係ありませんが、現状では、一度値を計算してから単価の選択をやり直しても計算結果の表示が変わることはありません。
そのあたりも考慮したUIになさっておいた方が良さそうに思います。
fujillinさん、いつも回答ありがとうございます
>D(AX).innerHTML = a;
そうです、ax です。 どこにエラーが有るかわからないので、結果を色々といじっていた途中のリストでした。
>要素D(A)はspan要素のはずですが、span要素には通常value属性はありません。
ご指摘ありがとう御座います。
var a = D(A).value;
を
var D(A).textContent;
に変更したら動きました!
ということは、
input の領域から値を読み取る場合は、 D(A).value;
span要素から値を読み取る場合は、 D(A).textContent;
ということですね
>現状では、一度値を計算してから単価の選択をやり直しても計算結果の表示が変わることはありません。
承知しています。最終版は、
<select name="a_select" onchange="b1out(this,'a');cal_ax('a','x','ax');">
のように、変更後の単価に合わせて再度計算するので問題ないと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript 1度きりではなく、繰り返し、挙動が変わるようにしていただきたいです。 1 2022/07/03 15:50
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
selectボックスの選択結果を変...
-
javascriptで、変数で、ディレ...
-
リストボックス内の重複したも...
-
selectのnameが配列の場合
-
Selectボックスの一覧表示方法
-
セレクトボックスで配列を呼び...
-
同じ名前のセレクトがある場合...
-
スマホのフォームでのselect複...
-
プルダウン選択を変更すると、...
-
複数プルダウンで検索
-
selectを変更不可にしたい
-
【急募】選択した物件と施設の...
-
jqueryでセレクトメニュー+スク...
-
addclassがうまく働きません
-
2段階プルダウンで1段階目の選...
-
セレクトメニューで選択不可に...
-
全てのselect要素をデフォルト...
-
連想配列を使ってコンボボック...
-
javascriptでセレクトボックス...
-
document.writeでセレクトボッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウン選択を変更すると、...
-
selectを変更不可にしたい
-
javascriptでセレクトボックス...
-
全てのselect要素をデフォルト...
-
Selectボックスの一覧表示方法
-
リストボックス内の重複したも...
-
プルダウンの値によって活性・...
-
VBScriptでHTMLのセレクトボッ...
-
JavaScriptで<select>の<option...
-
セレクトボックスで配列を呼び...
-
ラジオボタンとプルダウンを連...
-
selectを使った計算
-
select要素のvalueを配列で取得...
-
<input>の選択肢をプルダウンメ...
-
javascriptでoptionタグを削除...
-
今日の日付を自動的にセレクト...
-
検索窓とプルダウンメニュー機...
-
【javascript】連想配列からセ...
-
selectボックスの選択結果を変...
-
同じ名前のセレクトがある場合...
おすすめ情報