在Javascript中将参数发送到函数时出现问题
我编写了一个函数来计算一些书(在列表中选择的书)的价格 但它不能正常工作在Javascript中将参数发送到函数时出现问题,javascript,Javascript,我编写了一个函数来计算一些书(在列表中选择的书)的价格 但它不能正常工作 function priceCal(bookid,price){ if (document.getElementById(bookid).checked) { document.getElementById('price').innerHTML=parseInt(document.getElementById("price").innerHTML)+price; } } 我在一本书中这
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');"
>
但它什么也没做!发送论点有什么不对?!价格是一个带有0值的
标记(默认值)一些浏览器仅在输入失去焦点时触发更改
事件。改为使用单击事件。另外,为了确保代码按预期工作,请始终将radix
参数传递给parseInt
函数(在所有浏览器中,默认值不是10)
还应避免将price
作为字符串传递。把它当作一个数字传递就行了
var someNum = parseInt('888', 10);
仅当您在输入中编辑某个内容然后使其模糊或按enter键时,更改事件才会触发。在函数的开头放一个console.log,检查它是否到达函数。否则,您可以收听按键或模糊事件等。@FelixKling并非在所有浏览器中。哪些浏览器是这些浏览器?@FelixKling您是对的,它会被触发,但只有在输入失去焦点时才会触发。我把它记录下来。。。我还检查了一下。。。但是它还不起作用:(没什么问题。你应该把50
作为一个数字而不是字符串发送,但除此之外没关系。