みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

AJAXの計算式の中にIF文を入れて表示したい

下記の2つのファイルで、フォームから入力した数値同士の「足し算の結果」をAJAXで表示できます。

********************************************

【HTMLフォーム】
<script language="JavaScript" type="text/javascript" src="js/culc.js"></script>
<form name="f1">
<input type="text" id="text1" name="text1" size="10" maxlength="10" />
+
<input type="text" id="text2" name="text2" size="10" maxlength="10" />
<input type="button" value="足す" onclick="readText()" />
</form>


<p id="message"></p>


*******************************************

【JAVASCRIPT(culc.js)】

function readText() {
var text1 = document.getElementById("text1");
var text2 = document.getElementById("text2");
var message = document.getElementById("message");

var str_val1 = text1.value;
var str_val2 = text2.value;
var sum;

if (isNaN(str_val1) || str_val1 == "" || isNaN(str_val2) || str_val2 == "") {
textMessage = "数値以外の文字が入っています";
} else {
//sum = str_val1 + str_val2;
sum = parseFloat(str_val1) + parseFloat(str_val2);
textMessage = "合計は、" + sum + "です";
}
message.innerHTML = textMessage;

}

************************************************

【質問】

このjavascriptを改造し、入力した数値についての「足し算の結果」が正の数だった場合には「正の数」、負の数だった場合は「負の数」と表示すべく改造しております。下記の改造を施したのですが、うまく表示されません。

下記の文のどこが誤りか修正頂けませんでしょうか?

宜しくお願い致します。


【JAVASCRIPT(culc2.js)】

function readText() {
var text1 = document.getElementById("text1");
var text2 = document.getElementById("text2");
var message = document.getElementById("message");

var str_val1 = text1.value;
var str_val2 = text2.value;
var sum;

if (isNaN(str_val1) || str_val1 == "" || isNaN(str_val2) || str_val2 == "") {
textMessage = "数値以外の文字が入っています";
} else {
//sum = str_val1 + str_val2;
sum = parseFloat(str_val1) + parseFloat(str_val2);
textMessage =
"(if((sum > 0) {
document.write("正の数");
}
else((sum <= 0) {
document.write("負の数");
}
))";
}
message.innerHTML = textMessage;

}

投稿日時 - 2013-02-11 16:03:16

QNo.7939938

困ってます

質問者が選んだベストアンサー

textMessage =
"(if((sum > 0) {
document.write("正の数");
}
else((sum <= 0) {
document.write("負の数");
}
))";

これだと、textMessageという変数に、(if((sum > 0) {……略……))というテキストを代入する、という意味になりますよ。""で囲んだものはただのテキストです。中にスクリプトを書こうと動きはしません。ただの文字ですから。

if (sum >= 0){
textMessage = "正の数";
} else {
textMessage = "負の数";
}

例えば、こういう感じになるでしょう。


※それと、この質問はAjaxとは関係ないですね。ただのJavaScriptですので、JavaScriptのカテゴリで質問されたほうが回答がつきやすいでしょう。

投稿日時 - 2013-02-11 16:32:52

お礼

出来ました!!
有難うございました。
たしかに、""で囲えば文字ですね。
ご指導有難うございました。

投稿日時 - 2013-02-11 18:26:22

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問