dポイントプレゼントキャンペーン実施中!

function keisan(){
// 設定開始
var price1 = document.form1.kazu.value;
// 合計を計算
if (price1 < 10000) {
var total = parseInt(price1)*44/10000;
} else {
var total = parseInt(price1)*45/10000;
} else if
// 設定終了
document.form1.field_total.value = total; // 合計を表示
}
// -->
</SCRIPT>

上記に追加で*22/10000の計算を入れたいのですがどうしたらいいのですようか? 初心者なので申し訳ございませんがご教授お願い致します。

A 回答 (3件)

>Java S


Java S ではなく JavaScript ですよ?
Java と JavaScript は全く別の言語です。
(知っていたらすみません)
    • good
    • 0

#1です。


1の補足にあるスクリプトですが、
price2が一体なんなのかよくわかりませんが、
それを除けば大きな問題はないかと。

あ、ひとつありますね。

if ((price1 < 10000) && (price2.options[price2.selectedIndex].value ==
"????")){
var total = parseInt(price1)*20/10000;
} else if ((price1 > 9999) && (price2.options[price2.selectedIndex].value
== "????")){
var total = parseInt(price1)*20/10000;

↑ここの部分ですけど、price2.(略
).value と比較する値が同じであるなら、

if (price2.(略).value == "????") {
var total = parseInt(price1)*20/10000;
}
else if (price1 < 10000) {
var total = ...
}
else {
var total = ...
}

price1の値に関わらず *20/10000 をやってますから
まとめた方がいいですね。
同じものを求めるのに二箇所で別々に計算していると、
間違いの元になります(片方だけしか直さないとか)。

この回答への補足

先ほどはご返答ありがとうございます。
まとめた方が見栄えも良くわかりやすくなりました。
度々で申し訳ございませんが下記の1000=4.4、10000=45
の計算を出したのですが11000=49.5となってしまいます。
どの様な書き方ですと正しく計算するのかご教示頂けませんでしょうか?

} else if (price1 < 10000) {
var total = parseInt(price1)*44/10000;
} else {
var total = parseInt(price1)*45/10000;
}

補足日時:2007/04/10 16:31
    • good
    • 0

追加する以前に、このスクリプトは動いていないのではないですか?


if () {} else {} のあとに else if
とくるのは変ですよ。

あと、どのような場合に *22/10000をしたいのでしょうか?

もしこのelse if の本体部に *22/10000 を使った
計算を入れたいのなら、

if (price1 < 10000) {
var total = parseInt(price1)*44/10000;
}
else if (????) {
var total = parseInt(price1)*22/10000;
}
else {
var total = parseInt(price1)*45/10000;
}

のような感じになります。
*22/10000 を行う条件がわかりませんので
実際に使うときは埋めてください。

varの使い方も気になりますが、とりあえずは
スルーしておきます。


×教授
○教示

この回答への補足

function keisan(){
// 設定開始
var price1 = document.form1.kazu.value;
var price2 = document.form1.????;
// 合計を計算
if ((price1 < 10000) && (price2.options[price2.selectedIndex].value ==
"????")){
var total = parseInt(price1)*20/10000;
} else if ((price1 > 9999) && (price2.options[price2.selectedIndex].value
== "????")){
var total = parseInt(price1)*20/10000;
} else if (price1 < 10000) {
var total = parseInt(price1)*44/10000;
} else {
var total = parseInt(price1)*45/10000;
}
// 設定終了
document.form1.field_total.value = total; // 合計を表示
}
// -->
こんな感じに仕上がったのですがどうでしょうか?

補足日時:2007/04/10 13:10
    • good
    • 0
この回答へのお礼

色々とお答えしていただきありがとうございます。
else ifにつきましては作成段階で間違って記載したものでした。
申し訳ございませんでしたm(_ _)m
sakusaker7様の参考にして試行錯誤で完成させて行きたいと思ういます。

お礼日時:2007/04/10 12:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!