Javascript 我使用jquery在onclick()函数中传递了产品名称?但是错误 output+=''; 函数SaveCart(cartid){ var URL=“”; var userid=“” 风险值数据={ userid:userid }; $.ajax({ url:url+'cart/SaveCart/'+cartid, 数据:数据, 键入:“POST”, 数据类型:“json”, 成功:函数(结果){} }); }
错误:(控制台)(包是productname) 购物车:1未捕获参考错误:未定义行李 在htmlanchorement.onclick(购物车:1)Javascript 我使用jquery在onclick()函数中传递了产品名称?但是错误 output+=''; 函数SaveCart(cartid){ var URL=“”; var userid=“” 风险值数据={ userid:userid }; $.ajax({ url:url+'cart/SaveCart/'+cartid, 数据:数据, 键入:“POST”, 数据类型:“json”, 成功:函数(结果){} }); },javascript,jquery,Javascript,Jquery,错误:(控制台)(包是productname) 购物车:1未捕获参考错误:未定义行李 在htmlanchorement.onclick(购物车:1) 从错误消息中,问题似乎是因为element.cardd和element.ProductName是字符串,但您尚未在HTML输出中用引号将它们括起来。您需要将引号转义,以便它们不会破坏语法: output += '<td ... onclick="SaveCart(\'' + element.CardID + '\',\'' + element
从错误消息中,问题似乎是因为
element.cardd
和element.ProductName
是字符串,但您尚未在HTML输出中用引号将它们括起来。您需要将引号转义,以便它们不会破坏语法:
output += '<td ... onclick="SaveCart(\'' + element.CardID + '\',\'' + element.ProductName + '\')" ... </td>';
然而,更好的方法是去掉*事件属性上过时的,并以不引人注目的方式附加事件。然后,您可以使用数据
属性将元数据存储在元素中。鉴于您已经在使用jQuery,可以这样做:
var元素={
卡迪德:“abc123”,
产品名称:“Lorem ipsum”
}
让输出=``;
$('table tr')。追加(输出);
$('table')。在('click','product edit',function()上{
设$a=$(此);
设cardId=$a.data('cardId');
让productName=$a.data('productName');
console.log(cardId,productName);
//将您的AJAX发送到这里。。。
})
有两个问题。第一个是关于这一行:
onclick="SaveCart(' + element.CardID + ',' + element.ProductName + ')"
您的element.ProductName
可能是一个字符串(在本例中是名为Bag
),这会导致您的错误
您需要在onclick
的字符串元素周围加引号:
onclick="SaveCart(' + element.CardID + ', \'' + element.ProductName + '\')"
第二个问题是,SaveCart
只定义了一个参数:
function SaveCart(cartid) {
实际上,您正在向它传递两个参数,cardd
和ProductName
也许您根本不需要传递产品名称,在这种情况下,onclick
会变成:
onclick="SaveCart(' + element.CardID + ')"
或者您需要将第二个参数添加到SaveCart
:
function SaveCart(cartid, productName) {
你会包括你的html代码吗?绑定eventfunction SaveCart($cartid)sesion_data=$this->session->userdata('sessiondata')的方式一定有问题$user_id=$session_data['user_id'];
function SaveCart(cartid, productName) {