いつもお世話になっています。
単価を選んで、利用量を入力して、積を表示する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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウン選択を変更すると、...
-
Javascriptでフォームのセレク...
-
selectが変更されたらnameを指...
-
Selectボックスの一覧表示方法
-
プルダウンの値によって活性・...
-
フォームのドロップダウンで未...
-
New OPTIONで作った<Select>の<...
-
何がおかしいのでしょうか?
-
セレクトメニューの選択項目に...
-
JAVAスクリプトでのFORM入力チ...
-
もしAだったら100円、Cだった...
-
動的にtextareaとselectを追加...
-
【JavaScript】querySelectorで...
-
validateForm firefoxでalertが...
-
プルダウンメニューを選択した...
-
JavaScriptで<select>の<option...
-
プルダウンメニューに連動する...
-
selectを変更不可にしたい
-
セレクトボックスで、最後にク...
-
return trueとreturn falseの用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウン選択を変更すると、...
-
<input>の選択肢をプルダウンメ...
-
Selectボックスの一覧表示方法
-
javascriptでセレクトボックス...
-
同じ名前のセレクトがある場合...
-
全てのselect要素をデフォルト...
-
【javascript】連想配列からセ...
-
スマホのフォームでのselect複...
-
selectを変更不可にしたい
-
JavaScriptで<select>の<option...
-
複数のプルダウンを1つにまとめ...
-
プルダウンの値によって活性・...
-
VBScriptでHTMLのセレクトボッ...
-
webページの一部のみの更新につ...
-
selectのすべての値を送信する方法
-
javascript:データを日本語で...
-
プルダウンのoptionの表示・非...
-
リストボックス内の重複したも...
-
select要素のvalueを配列で取得...
-
C#(csファイル)とjavascriptと...
おすすめ情報