嗨,这就是情况
var seat_sel = document.getElementById('cmb_num_seat').value;
var cashp = document.getElementById('hdn_price').value;
var CHILD_PRICE = '5'
if(seat_sel > 0){
CHILD_PRICE = CHILD_SEAT_PRICE * seat_selected;
}else{
CHILD_PRICE = CHILD_SEAT_PRICE * seat_selected;
}
document.getElementById('disp_2_div').innerHTML = formatCurrency(parseInt(cashp)+parseInt(CHILD_PRICE));
document.getElementById('hdn_price').value = formatCurrency(parseInt(cashp)+parseInt(CHILD_PRICE))例如..。
我有cashp=20
当用户选择cmb_num_seat(DROP DOWN)时,价格将增加,即
20+(5*3)=20+15=45假设我在下拉列表中选择了3...
但在某些情况下,计算会出错。
例如选择3,然后选择4,然后选择2,然后选择1,
在这种情况下,旧值hdn_price将覆盖加法的...bcoz ...
有没有办法先在某个变量中取值,然后再进行计算……...maintain。
发布于 2010-07-24 22:06:05
我不知道你的代码到底有什么问题,也不知道你认为它是什么,我看到了几个潜在的问题:
另外,您有一条在这两种情况下执行完全相同操作的if语句,并且您将CHILD_PRICE初始化为一个字符串,但是下面的代码总是将其替换为一个数值。
如果您要对数字进行计算,请在进行计算之前解析这些值。不要害怕使用更多的变量作为中间值,这不会对性能产生任何明显的影响,而且会使代码更具可读性。
如果您希望保持起始价,则应在页面加载时从隐藏字段中读取一次值:
var price = parseInt(document.getElementById('hdn_price').value);然后在更新代码中使用变量:
var seats = parseInt(document.getElementById('cmb_num_seat').value);
var childPrice = CHILD_SEAT_PRICE * seats;
var display = formatCurrency(cash + childPrice);
document.getElementById('disp_2_div').innerHTML = display;
document.getElementById('hdn_price').value = display;https://stackoverflow.com/questions/3325265
复制相似问题