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

すみません。似たような質問を確認しましたが、自分の例とどうリンクしていいか判断できず、大変申し訳ないのですがご教示ください。
下記のようにテキストボックスに入った数字を合計するJavascriptを書きました。IEでは動きますが、Firefoxではそもそもテキストボックスに数字を入力することもできません。お分かりになる方、改善方法をご教示願えませんでしょうか。
よろしくお願いいたします。

<HTML>
<HEAD>

<SCRIPT language=JavaScript type=text/javascript>
<!--
function sum(){
var listpage = document.forms ['listPageForm'] ;
var value1 = parseFloat (listpage.elements ['TX_1'].value) ;
var value2 = parseFloat (listpage.elements ['TX_2'].value) ;
var value3 = parseFloat (listpage.elements ['TX_3'].value) ;


if(isNaN(value1) || value1=="") value1 = 0;
if(isNaN(value2) || value2=="") value2 = 0;
if(isNaN(value3) || value3=="") value3 = 0;


var sample_sum = value1 + value2 + value3;
listpage.elements ['TX_4'].value = sample_sum.toString ();

if(listpage.elements ['TX_1'].value.substring(0,1)=='0')
listpage.elements ['TX_1'].value = value1;
if(listpage.elements ['TX_2'].value.substring(0,1)=='0')
listpage.elements ['TX_2'].value = value2;
if(listpage.elements ['TX_3'].value.substring(0,1)=='0')
listpage.elements ['TX_3'].value = value3;

if(listpage.elements ['TX_1'].value=='')
listpage.elements ['TX_1'].value = 0;
if(listpage.elements ['TX_2'].value=='')
listpage.elements ['TX_2'].value = 0;
if(listpage.elements ['TX_3'].value=='')
listpage.elements ['TX_3'].value = 0;

}

function check(){
var flag = 0;
if(document.listPageForm.TX_4.value == "100"){
flag = 1;
}
if(flag){
return true;
}
else{
window.alert('合計が100%になりません。');
return false;
}
}

//-->
</SCRIPT>
<FORM name="listPageForm" onSubmit="return check()">
<TD><INPUT onkeypress='if(event.keyCode<"0".charCodeAt(0) ||
"9".charCodeAt(0)<event.keyCode) return false;'
onkeyup=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_1" value="_TX_1_">%
</TD>
<TD><INPUT onkeypress='if(event.keyCode<"0".charCodeAt(0) ||
"9".charCodeAt(0)<event.keyCode) return false;'
onkeyup=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_2" value="_TX_2_">%
</TD>
<TD><INPUT onkeypress='if(event.keyCode<"0".charCodeAt(0) ||
"9".charCodeAt(0)<event.keyCode) return false;'
onkeyup=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_3" value="_TX_3_">%
</TD>
<TD><INPUT onkeypress='if(event.keyCode<"0".charCodeAt(0) ||
"9".charCodeAt(0)<event.keyCode) return false;'
onkeyup=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_4" value="_TX_4_">%
</TD>

A 回答 (1件)

<HTML>


<HEAD>

<SCRIPT language=JavaScript type=text/javascript>
<!--
function sum(){
var listpage = document.forms ['listPageForm'] ;
var value1 = parseFloat (listpage.elements ['TX_1'].value) ;
var value2 = parseFloat (listpage.elements ['TX_2'].value) ;
var value3 = parseFloat (listpage.elements ['TX_3'].value) ;


if(isNaN(value1) || value1=="") value1 = 0;
if(isNaN(value2) || value2=="") value2 = 0;
if(isNaN(value3) || value3=="") value3 = 0;


var sample_sum = value1 + value2 + value3;
listpage.elements ['TX_4'].value = sample_sum.toString ();

if(listpage.elements ['TX_1'].value.substring(0,1)=='0')
listpage.elements ['TX_1'].value = value1;
if(listpage.elements ['TX_2'].value.substring(0,1)=='0')
listpage.elements ['TX_2'].value = value2;
if(listpage.elements ['TX_3'].value.substring(0,1)=='0')
listpage.elements ['TX_3'].value = value3;

if(listpage.elements ['TX_1'].value=='')
listpage.elements ['TX_1'].value = 0;
if(listpage.elements ['TX_2'].value=='')
listpage.elements ['TX_2'].value = 0;
if(listpage.elements ['TX_3'].value=='')
listpage.elements ['TX_3'].value = 0;

}

function check(){
var flag = 0;
if(document.listPageForm.TX_4.value == "100"){
flag = 1;
}
if(flag){
return true;
}
else{
window.alert('合計が100%になりません。');
return false;
}
}

//-->
</SCRIPT>
</head>
<body>
<FORM name="listPageForm" onSubmit="return check()">
<TD><INPUT onchange=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_1" value="_TX_1_">%
</TD>
<TD><INPUT onchange=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_2" value="_TX_2_">%
</TD>
<TD><INPUT onchange=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_3" value="_TX_3_">%
</TD>
<TD><INPUT onchange=sum(); style="IME-MODE: disabled; TEXT-ALIGN: right" name="TX_4" value="_TX_4_">%
</TD>
</body></html>

これでは だめでしょうか。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
無事動作しました!大変ありがとうございました。

お礼日時:2011/08/05 09:23

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