佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1277|回复: 20

[问题解决了] 又是javascript的问题(算数)

[复制链接]
发表于 15-11-2006 05:03 PM | 显示全部楼层 |阅读模式
现在我拥有七个SELECT BOX,价钱都是不一样,客户可以任何选择想购买的票,选择完后,会显示总共是多少,用javascript来计算是怎样的?


如果他选择是一张票的价格是RM100,他购买十张:

doc.ticket.price.value = ticket.value * 100;


可是如果客户选择不同价格的票,要怎样计算呢?

[ 本帖最后由 sotsot82 于 16-11-2006 02:16 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 15-11-2006 06:02 PM | 显示全部楼层
原帖由 sotsot82 于 15-11-2006 05:03 PM 发表
现在我拥有七个SELECT BOX,价钱都是不一样,客户可以任何选择想购买的票,选择完后,会显示总共是多少,用javascript来计算是怎样的?


如果他选择是一张票的价格是RM100,他购买十张:

doc.ticket.pr ...

select是multi select?
回复

使用道具 举报

 楼主| 发表于 15-11-2006 06:09 PM | 显示全部楼层
原帖由 hui_wooi 于 15-11-2006 06:02 PM 发表

select是multi select?



RM100
<select size="1" name="ticket0" onchange="show_price(this)">
<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>
<option value="6">6</option>
</select张<br><br>

RM150
<select size="1" name="ticket1" onchange="show_price(this)">
<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>
<option value="6">6</option>
</select张<br><br>


RM200
<select size="1" name="ticket2" onchange="show_price(this)">
<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>
<option value="6">6</option>
</select张<br><br>

......



......


..........就是这样
回复

使用道具 举报

发表于 15-11-2006 07:55 PM | 显示全部楼层
原帖由 sotsot82 于 15-11-2006 06:09 PM 发表



RM100
<select size="1" name="ticket0" onchange="show_price(this)">
<option value="1">1</option>
<option value="2"> ...

多一个textbox来收总数。

每次call show_price function时,也把总数带进去加。
回复

使用道具 举报

 楼主| 发表于 16-11-2006 08:32 AM | 显示全部楼层
不是很明白,可以演示一下吗?
回复

使用道具 举报

 楼主| 发表于 16-11-2006 09:33 AM | 显示全部楼层
那我不是要拥有七个FUNCTION?

function price(ticket)
{
        document.mrd.price.value = ticket.value * 100;
       
}

function price1(ticket1)
{
        document.mrd.price.value = ticket1.value * 150;
       
}

..............


..............


.............
回复

使用道具 举报

Follow Us
发表于 16-11-2006 09:43 AM | 显示全部楼层
原帖由 sotsot82 于 16-11-2006 09:33 AM 发表
那我不是要拥有七个FUNCTION?

function price(ticket)
{
        document.mrd.price.value = ticket.value * 100;
       
}

function price1(ticket1)
{
        document.mrd.price.value = ticket1.value * 150;
       
...

你到底是用onChange还是只是最后一个submit来call function?
回复

使用道具 举报

 楼主| 发表于 16-11-2006 09:47 AM | 显示全部楼层
用onChange......
回复

使用道具 举报


ADVERTISEMENT

发表于 16-11-2006 10:11 AM | 显示全部楼层
一个 function 就好... 只是 select 的名字要改改:

<script language="javascript">

       
function CalTotal () {
       
   var total = 0, price = 0;
               
   for (var x = 0; x < document.forms[0].elements.length; x++) {
     if (document.forms[0].elements[x].name.indexOf ("ticket_") == 0) {
        price = parseInt(document.forms[0].elements[x].name.substr(document.forms[0].elements[x].name.indexOf ("_") + 1, document.forms[0].elements.length));
        total += price * parseInt(document.forms[0].elements[x][document.forms[0].elements[x].selectedIndex].value);
     }
    }
               
   document.forms[0].total.value = total;
               
}

</script>

<form>
RM100
<select size="1" name="ticket_100" onchange="CalTotal();">
<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>
<option value="6">6</option>
</select><br><br>

RM150
<select size="1" name="ticket_150" onchange="CalTotal();">
<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>
<option value="6">6</option>
</select><br><br>
<input type="text" name="total" value="0">
</form>
回复

使用道具 举报

发表于 16-11-2006 10:14 AM | 显示全部楼层
原帖由 goatstudio 于 16-11-2006 10:11 AM 发表
一个 function 就好... 只是 select 的名字要改改:

<script language="javascript">

       
function CalTotal () {
       
   var total = 0, price = 0;
               
   for (var x = 0; x < docum ...

羊大大,你真内行。
回复

使用道具 举报

 楼主| 发表于 16-11-2006 10:19 AM | 显示全部楼层
原帖由 goatstudio 于 16-11-2006 10:11 AM 发表
一个 function 就好... 只是 select 的名字要改改:

<script language="javascript">

       
function CalTotal () {
       
   var total = 0, price = 0;
               
   for (var x = 0; x < docum ...



哇!好复杂,要研究看看了,如果购买完后又要附加费,拥有两个选择一个是RM4,另外一个是RM8,用户一定要选择的。
回复

使用道具 举报

发表于 16-11-2006 10:24 AM | 显示全部楼层
原帖由 sotsot82 于 16-11-2006 10:19 AM 发表



哇!好复杂,要研究看看了,如果购买完后又要附加费,拥有两个选择一个是RM4,另外一个是RM8,用户一定要选择的。

同一页?还是不同页?
回复

使用道具 举报

 楼主| 发表于 16-11-2006 10:25 AM | 显示全部楼层
原帖由 hui_wooi 于 16-11-2006 10:24 AM 发表

同一页?还是不同页?



同一页
回复

使用道具 举报

 楼主| 发表于 16-11-2006 10:29 AM | 显示全部楼层
我的表格是这样的,客户选择购买多少张不同价钱的票后,然后加上邮寄费用,西马与东马的价钱不一样,然后总共是多少。
回复

使用道具 举报

发表于 16-11-2006 10:52 AM | 显示全部楼层
原帖由 sotsot82 于 16-11-2006 10:29 AM 发表
我的表格是这样的,客户选择购买多少张不同价钱的票后,然后加上邮寄费用,西马与东马的价钱不一样,然后总共是多少。

稍微修改羊大大的code即可。想提醒你的是不要只是用javascript计算,很危险的。
<html>
<head>
<script type="text/javascript">
function CalTotal ()
{
   var total = 0, price = 0;

   for (var x = 0; x < document.forms[0].elements.length; x++)
   {
     if (document.forms[0].elements[x].name.indexOf ("ticket_") == 0)
     {
        price = parseInt(document.forms[0].elements[x].name.substr(document.forms[0].elements[x].name.indexOf ("_") + 1, document.forms[0].elements.length));
        total += price * parseInt(document.forms[0].elements[x][document.forms[0].elements[x].selectedIndex].value);
     }
   }   
   document.forms[0].total.value = total;            
}
</script>
</head>

<body>
<form>
Select numbers:<br />
<select name="ticket_100" onchange="CalTotal()">
        <option>0</option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
</select>
<select name="ticket_150" onchange="CalTotal()">
        <option>0</option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
</select>
<select name="ticket_1" onchange="CalTotal()">
        <option value="4">West</option>
        <option value="8">East</option>
</select>

<input type="text" name="total" value="0">
</form>
</body>
</html>
回复

使用道具 举报

 楼主| 发表于 16-11-2006 10:55 AM | 显示全部楼层
原帖由 hui_wooi 于 16-11-2006 10:52 AM 发表

稍微修改羊大大的code即可。想提醒你的是不要只是用javascript计算,很危险的。
<html>
<head>
<script type="text/javascript">
function CalTotal ()
{
   var total = 0, ...



我的邮寄费用是用checkbox的....
回复

使用道具 举报


ADVERTISEMENT

发表于 16-11-2006 11:00 AM | 显示全部楼层
原帖由 sotsot82 于 16-11-2006 10:55 AM 发表



我的邮寄费用是用checkbox的....

用radio button会比较适合吧。
回复

使用道具 举报

 楼主| 发表于 16-11-2006 01:57 PM | 显示全部楼层
原帖由 hui_wooi 于 16-11-2006 11:00 AM 发表

用radio button会比较适合吧。



然后怎样计算?
回复

使用道具 举报

 楼主| 发表于 16-11-2006 02:15 PM | 显示全部楼层
嗯,问题解决了,谢谢。
回复

使用道具 举报

发表于 17-11-2006 09:49 AM | 显示全部楼层
原帖由 hui_wooi 于 16-11-2006 10:14 AM 发表

羊大大,你真内行。


混口饭吃... 大家一起学习.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 23-8-2025 03:32 AM , Processed in 0.150649 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表