我使用javascript onclick函数使一个函数,但它返回一个错误未捕获的ReferenceError: addToCart未定义,我不知道为什么这是我的代码
my javascript code
function addToCart(){
var productname = $('pname').text();
var productid = $('productid').text();
var color = $('#color option:selected').text();
var color = $('#size option:selected').text();
var quantity = $('#qty').val();
$.ajax({
type: "POST",
dataType: 'json',
data:{
color:color,
size:size,
quantity:quantity,
productname:productname,
},
url: "cart/data/store"+productid,
success:function(data)
console.log(data);
})
和onclick输入
<input type="submit" class="btn btn-primary" onclick="addToCart()" value="add to cart">
您执行了onclick="addToCart()"
,它立即执行了您应该执行的onclick="addToCart"
的功能。
这可能是因为浏览器没有正确加载你的函数。我会尝试在函数定义的上方和外部添加console.log,以确保它被加载。
更一般地说,如果你使用jQuery,你可能想要在Javascript中附加addToCart
onclick处理程序,而不是在HTML中。在文档准备好后使用JS/JQuery通过类
在一切正常的情况下你可以做的是代替html
中的onclick<input type="submit" class="btn btn-primary" id="cart-btn" value="add to cart">
脚本:
$(document).ready(function(){
function addToCart(){
//function definition
}
$("#cart-btn").click(addToCart);
});
我认为您的addToCart
函数要么没有加载,要么没有在全局范围内定义!
示例1(在全局作用域中定义的函数)
function hi() {
alert("hi");
}
<button onclick="hi()">Click Me</button>
示例2 (onClick函数未在全局作用域中定义)
(() => {
function hi() {
alert("hi");
}
})()
<button onclick="hi()">Click Me</button>