2011-04-18 35 views
0

我需要根据以下表单中的用户输入进行计算。在这里使用jQuery Calculation Plug-in:http://www.pengoworks.com/workshop/jquery/calculation/calculation.plugin.htm我能弄清楚如何做“多少会话?”次数“学生人数”乘以前两项的“每次会议费用”。真正让我失望的是最底层的一个,除了用户填写的会话数量之外,我还需要他们从选择框中选择学生人数。有任何想法吗?计算表单输入,其中一个通过选择框进行修改

<table> 
<tr><th>How many sessions?</th><th>Number of Students</th><th>Type of tutoring</th><th>Cost Per Session</th><th>Total Cost</th></tr> 
<tr><td><input type="text" name="qty_academic" size="3" /></td><td id="num_students">1 Student</td><td>Academic Tutoring</td><td id="price_item_1">$55.00</td><td id="total_item_1">$0.00</td></tr> 
<tr><td><input type="text" name="qty_multi" size="3" /></td><td id="num_students">1 Student</td><td>ML Tutoring</td><td id="price_item_2">$60.00</td><td id="total_item_2">$0.00</td></tr> 
<tr><td><input type="text" name="qty_group" size="3" /></td><td><select name="group_size" id="num_students"> 
    <option value=""></option> 
    <option value="2">2 Students</option> 
    <option value="3">3 Students</option> 
    <option value="4">4 Students</option> 
    </select></td><td>Group Tutoring</td><td id="price_item_3"></td><td id="total_item_3">$0.00</td></tr> 
<tr><td>&nbsp;</td><td>&nbsp;</td><td colspan="2" align="right"><h3>Grand Total:</h3></td><td id="grandTotal"></td></tr> 

的2学生价格将是每个学生$ 40,3个学生每个学生= $ 35 4名学生= $ 30%的学生。也许我只是没有看到这个正确的方式,但我似乎无法把头围住它。

除了进行计算之外,我还需要在表单提交中至少选择一个类型的会话(以及我在其余部分使用的所有信息字段)表格)。有人能指出我是一个很好的例子来说明如何实现这个目标吗?谢谢。


更新#1:

这是我迄今为止的工作:http://jsfiddle.net/jT9HE/2/

我只是需要让方块改变它重新计算时,下拉(选择)。


更新#2:

 $("select[name^=group_size]").bind("change", recalc); 
     // run the calculation function now 
     recalc(); 

这使得改变下拉框更新价格下降。现在,我怎样才能根据下拉框中选择的内容来确定价格?

+0

按时间顺序更新,而不是在顶部,这使得很难阅读... – Neal 2011-04-18 18:10:33

回答

0

在我看来这是一个jQuery应该抱怨的情况。无论如何,实际上问题的一个来源是存在具有相同值id的多个元素。这是显示这一问题的代码摘录:

<td id="num_students">1 Student</td> 
<td id="num_students">1 Student</td> 

<select name="group_size" id="num_students"> 

当你做到这一点,

students: $("[id^=num_students]") 

生成的元素是不是你想什么,但第一个TD。

希望这个帮助进一步调查和代码重构。

- 更新 -

我固定的程式码,请看看here on jsFiddle,看看它是否适合你。如果不让我知道。

基本上我解决了具有相同值的多个id的问题,并添加了隐藏字段,以便始终有多个学生相乘。最后,我在选择框中附加了一个onchange事件。

对于集体辅导的价格动态计算也有一些逻辑。

+0

哇。哇哇!我没想到会看到其他的东西。为了让它工作,我使用了一个丑陋的黑客。我在“2名学生”旁边制作了下拉显示器,并且每个选项的价值是许多学生的成本。通过这种方式,我可以显示总数而不是单位值。我甚至没有接近满意,但在功能上它工作,我有一个截止日期,所以我只是让它离开。我不得不重新编写我的PHP来弥补这个问题,但我很高兴。谢谢。 – Vincent 2011-04-20 04:50:46

相关问题