我写了一个函数来计算某些书籍的价格(在列表中选择) 但它无法正常工作。
function priceCal(bookid,price){
if (document.getElementById(bookid).checked) {
document.getElementById('price').innerHTML=parseInt(document.getElementById("price").innerHTML)+price;
}
}
我在一本书中称之为考试:
<input
type="checkbox"
name="bookList"
value="book3"
id="bookList_3"
onChange="priceCal('bookList_3','50');"
>
但它什么都没做!发送参数有什么问题?!价格是<p>
标签,其值为0(默认为
答案 0 :(得分:0)
某些浏览器仅在输入失去焦点时触发change
事件。请改用click
事件。另外,为确保您的代码按预期工作,请始终将radix
参数传递给parseInt
函数(默认情况下,所有浏览器中都不是10)。
您还应该避免将price
作为字符串传递。只需将其作为数字传递。
var someNum = parseInt('888', 10);
答案 1 :(得分:0)
如果您在输入中编辑某些内容然后将其模糊,或按Enter键,则仅会触发更改事件。在函数的开头放置一个console.log来检查它是否完全进入该函数。否则你可以听到keydown或模糊事件等。