我有一个订单表单,用户选择图像的质量(从下拉列表),项目的类型(从单选按钮),光洁度(复选框选中然后$1)和数量(文本框),基于用户的选择,当点击计算按钮所选项目的成本文本框应该填充总量。
(qualityofimage)硬拷贝海报咖啡杯t恤(物品类型)
Good 8.99 9.99 10.99 11.99很好9.99 10.99 11.99 12.99优秀10.99 11.99 12.99 13.99
例如:如果图像质量良好,则项目类型为硬拷贝,检查光洁度,数量为1:总金额= (8.99 + 1)* 1 .
我是新的javascript和尝试使用二维数组来计算金额,但没有得到正确的结果。如有任何帮助,不胜感激。
HTML代码:
<form id="orderform" name="orderform">
<!--Order form-->
<div id="items">
Types of items
<input type="radio" id="items" name="items" value="1" >Hard-copy Prints
<input type="radio" id="items" name="items" value="2" >Posters
<input type="radio" id="items" name="items" value="3" >Coffee Mugs
<input type="radio" id="items" name="items" value="4" >T-shirts
</div>
<div id="qualityofimage">
Quality of Images
<select name="quality" id="quality">
<option value="1" selected>Good</option>
<option value="2">Very Good</option>
<option value="3">Excellent</option>
</select>
</div>
<div>
Glossy finish
<input type="checkbox" name="gf" id="gf">
</div>
<div>Quantity
<input type="text" id ="qty" name="qty" size="5">
</div>
<div><input type="button" id="calculate" value="Calculate" onclick="display()"></div>
<div>Total
<input type="text" id="cost" name="cost" readonly="readonly">
</div>
</form>
Javascript var array=[[8.99,9.99,10.99],[9.99,10.99,11.99],[10.99,11.99,12.99],[11.99,12.99,13.99]];
function display()
{
var row = document.querySelector('input[name="quality"]:selected').value;
var column = document.querySelector('input[name="items"]:checked').value;
var gf=document.getElementById("gf");
var qty=document.getElementById("qty").value;
var total=0;
if(gf.checked)
{
total= (array[row][column]+1)*qty;
}
else
{
total= (array[row][column])*qty;
}
document.getElementById("cost").value = total;
}
只有一个问题::selected
是一个jQuery选择器,所以它不会与document.querySelector
一起工作。
你可能在找$("select option:selected")
。
所以是:
var row = $('select option:selected').val();
一旦我改变了,它就正常工作了。