[问题] dynamic table 和jquery

楼主: franklee0402 (FrankLee)   2016-08-15 21:36:46
各位前辈好。小弟是学校替代役,暑假在学校当哈登,
负责买饭,最近开始起手写起这点菜的网站。
先谢谢各位,若有哪边不合规矩,再麻烦您提醒我一下。谢谢!
http://163.17.177.11/ordering/
我有一个dynamic table 来增加点餐人数。
问题在于我的加减号部分,第一次按下加号时,
我console.log(document.getElementById("qty").value;)
回馈的份量数值不会变,要按下第二次才会变。
(ex: 1,1,2,3,4)
我认为在jquery的.prev()出现问题,但已经卡关好久了,
观念或逻辑不晓得哪边出现错误?
//HTML 加减号按钮的部分
<td class="cart_quantity" id="input_div">
<input type='button' value='-' class='qtyminus' field='quantity'
onclick="getPrice()"/>
<input type='text' name='quantity' value='1' id='qty' class='qty'/>
<input type='button' value='+' class='qtyplus' field='quantity'
onclick="getPrice()"/>
</td>
//JS 用来增加点菜人字段
function addPerson(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[1].cells[i].innerHTML;
}
}
//算价格的部分
function getIkegamiPrice(){
var x = document.getElementById("ikegamiID");
var i = x.selectedIndex;
var q = document.getElementById("qty").value;
//数量回报出现问题的地方。如果我连续按加号
//quantity: 1
//quantity: 1
//quantity: 2
//quantity: 3
console.log("quantity: " + q);
var ikegami = [
["招牌饭", 55],
["爌肉饭", 65],
["炸排骨饭", 65],
["卤排骨饭", 65],
["鸡排饭", 60],
["土魠鱼饭", 65],
["炸鸡腿饭", 80],
["蜜汁鸡腿饭", 80]
]
var price = ikegami[i-1][1] * q;
document.getElementById("priceCell").innerHTML = price;
}
//jquery
//这是加号按下去时用的jquery部分
$(document).on('click', '.qtyplus', function(e){
e.preventDefault();
var $input = $(this).prev('input');
var currentVal = parseInt($input.val());
if (!isNaN(currentVal)) {
$input.val(currentVal + 1);
} else {
$input.val(0);
}
});
//这是减号
$(document).on('click', '.qtyminus', function(e){
e.preventDefault();
var $input = $(this).next('input');
var currentVal = parseInt($input.val());
if (!isNaN(currentVal) && currentVal > 1 ) {
$input.val(currentVal - 1);
} else {
$input.val(0);
}
});
作者: Hevak (Arthow Eshes)   2016-08-15 22:24:00
你测试的浏览器是?我用Chrome 50没遇到你说的问题喔对不起,原来你说的是function,我没看清楚,我这边也有遇到你说的问题其实id这个东西原则上一页只能有一个同样的id....所以其实你的写法还会有加到别栏就会抓错值的问题
作者: dnzteeqrq (大只猫)   2016-08-15 23:03:00
先后顺序的问题,你每次抓到的值都是上一次的让getIkegamiPrice()再on('click','.qtyplus')之后执行

Links booklink

Contact Us: admin [ a t ] ucptt.com