計算フォームで減算がしたいのですが



0   名前: 匿名 : 2006/07/06(木) 14:23  ID:W99xiNzL
今、http://www.tagindex.com/javascript/form/comp1b.htmlを参考に計算フォームを製作しているのですが数量の値にマイナスの数値も入れて減算もできるようにしたいと思い下記のように作ってみたのですが上手くいきませんでした。

基本的に商品1の金額が1000000円で、そこから商品2(1000円)を加算or減算して合計金額に反映させたいのですが良い方法はありませんか。教えてください。

商品1の数量欄に1、商品2に数量1を選んだ場合、合計金額1001000円のパターンと
商品1の数量欄に1、商品2に数量-1を選んだ場合、合計金額999000円のパターンがでるような計算フォームです。


<HTML>
<HEAD>
<TITLE>TAG index Webサイト</TITLE>

<SCRIPT TYPE="text/javascript">
<!--

function keisan(){


// 設定開始

// 商品1
var price1 = document.form1.syohin1.selectedIndex * 1000000; // 単価を設定
document.form1.field1.value = price1; // 小計を表示

// 商品2
var price2 = document.form1.syohin2.selectedIndex * 1000; // 単価を設定
document.form1.field2.value = price2; // 小計を表示

// 商品3
var price3 = document.form1.syohin1.selectedIndex * 3000; // 単価を設定
document.form1.field3.value = price3; // 小計を表示

// 合計を計算
var total = price1 + price2 + price3;

// 設定終了


document.form1.field_total.value = total; // 合計を表示

}

// -->
</SCRIPT>

</HEAD>
<BODY>

<FORM NAME="form1">

<TABLE BORDER="1" CELLSPACING="2" CELLPADDING="2" BGCOLOR="#FFFFFF">
<TR>
<TH>商品名</TH>
<TH>単価</TH>
<TH>数量</TH>
<TH>金額</TH>
</TR>
<TR>
<TD>商品サンプル1</TD>
<TD ALIGN="right">1000000円</TD>
<TD><SELECT NAME="syohin1" onChange="keisan()">
<OPTION>0
<OPTION>1
</SELECT></TD>
<TD><INPUT TYPE="text" NAME="field1" SIZE="8" VALUE="0"> 円</TD>
</TR>
<TR>
<TD>商品サンプル2</TD>
<TD ALIGN="right">1,000円</TD>
<TD><SELECT NAME="syohin2" onChange="keisan()">
<OPTION>0
<OPTION>-1
<OPTION>-2
<OPTION>-3
<OPTION>-4
<OPTION>-5
<OPTION>1
<OPTION>2
<OPTION>3
<OPTION>4
<OPTION>5
</SELECT></TD>
<TD><INPUT TYPE="text" NAME="field2" SIZE="8" VALUE="0"> 円</TD>
</TR>
<TR>
<TD>商品サンプル3</TD>
<TD ALIGN="right">3,000円</TD>
<TD><SELECT NAME="syohin3" onChange="keisan()">
<OPTION>0
<OPTION>-1
<OPTION>-2
<OPTION>-3
<OPTION>-4
<OPTION>-5
<OPTION>1
<OPTION>2
<OPTION>3
<OPTION>4
<OPTION>5
</SELECT></TD>
<TD><INPUT TYPE="text" NAME="field3" SIZE="8" VALUE="0"> 円</TD>
</TR>
<TR>
<TD ALIGN="right" COLSPAN="3"><FONT COLOR="#FF0000"><B>合計</B></FONT></TD>
<TD><INPUT TYPE="text" NAME="field_total" SIZE="8" VALUE="0"> 円</TD>
</TR>
</TABLE>

</FORM>

</BODY>
</HTML>

1   名前: Script41 : 2006/07/06(木) 14:23  ID:A3n49R0s
<script type="text/javascript">
<!--
function keisan(o,v){
var keisan, price, display;
var total = 0;
keisan = "document.form1.syohin" + o + ".options[form1.syohin" + o + ".selectedIndex].value";
var price = eval( keisan ) * v ;
display = eval( "document.form1.field" + o );
display.value = price;
for(i=1;3>=i;i++){
display = eval( "document.form1.field" + i );
syokei = display.value - 0;
total += syokei;
}
document.form1.field_total.value = total;
}

//-->
</script>

</head>
<body>

<form name="form1">

<table border="1" cellspacing="2" cellpadding="2" bgcolor="#ffffff">
<tr>
<th>商品名</th>
<th>単価</th>
<th>数量</th>
<th>金額</th>
</tr>
<tr>
<td>商品サンプル1</td>
<td align="right">1,000,000円</td>
<td>
<select name="syohin1" onChange="keisan(1,1000000)">
<option value="0" selected>0</option>
<option value="1">1</option>
</select>
</td>
<td>
<input type="text" name="field1" size="8" value="0"> 円
</td>
</tr>
<tr>
<td>商品サンプル2</td>
<td align="right">1,000円</td>
<td>
<select name="syohin2" onChange="keisan(2,1000)">
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0" selected>0</option>
<option value="-1">-1</option>
<option value="-2">-2</option>
<option value="-3">-3</option>
<option value="-4">-4</option>
<option value="-5">-5</option>
</select>
</td>
<td>
<input type="text" name="field2" size="8" value="0"> 円
</td>
</tr>
<tr>
<td>商品サンプル3</td>
<td align="right">3,000円</td>
<td>
<select name="syohin3" onChange="keisan(3,3000)">
<option value="5">5</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="2">2</option>
<option value="1">1</option>
<option value="0" selected>0</option>
<option value="-1">-1</option>
<option value="-2">-2</option>
<option value="-3">-3</option>
<option value="-4">-4</option>
<option value="-5">-5</option>
</select>
</td>
<td>
<input type="text" name="field3" size="8" value="0"> 円
</td>
</tr>
<tr>
<td align="right" colspan="3"><font color="#ff0000"><b>合計</b></font></td>
<td>
<input type="text" name="field_total" size="8" value="0"> 円
</td>
</tr>
</table>

</form>

一覧へ戻る