在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
作为一个数字而不是字符串发送,但除此之外没关系。