您好我有jQuery函数,并且我在其中调用了servlet并且还传递了2个值,但它显示了NullPointerException
。
我不知道为什么,但我认为我把错误放在其中是错误的。
我的代码:
function addProductById(pId,pMqty){
$.getJSON("addtocart?pid=" + pId + "&minqty="+ pMqty +"&rand=" + Math.floor((Math.random()*100)+1), function(json) {
alert(json.msg);
});
}
这里我将2个变量pId和pMqty传递给servlet addtocart,但它没有在servlet中接收。 知道为什么不去那里吗?
并且我也在点击按钮时将此函数调用到JavaScript:
onclick='addProductById(" + this.id + ","+ this.minqty +");'
请帮忙吗?
Java脚本代码:
tableRow: function tableRow(product){
this.id = product.pId;
this.image = product.pImage;
this.name = product.pName;
this.price = product.pPrice;
this.feature = product.pFeature;
this.minqty = product.pMqty;
var image = "<div class='mainitemlist'><div class='mainitemlistimage'><a href='product?pid=prdID'><img src='product_images/prdIMAGE' height='125px' width='100px' style='border-radius:2px;'></a></div>";
var name = "<div class='mainitemlistname'><div align='center'><a href='product?pid=prdID' style='color: #9caeb9;text-decoration: none;'>prdNAME</a></div></div>";
var price = "<div class='mainitemlistprice'><div align='center'>prdPRICE</div></div>";
var features = "<div class='mainitemlistfeatures'><div align='center'> <!--prdFEATURE-->MOQ : prdMINQTY</div><div align='center'><button type='button' style='display: none;margin-top: 5px;' class='btn btn-primary' onclick='addProductById(" + this.id + ","+ this.minqty +");'>Add To Cart</button></div></div></div>";
this.generateHTML = function generateHTML(){
html = "";
html += image.replace("prdIMAGE", this.image).replace("prdID", this.id);
html += name.replace("prdNAME", this.name).replace("prdID", this.id);
html += price.replace("prdPRICE", this.price);
html += features.replace("prdFEATURE", this.feature).replace("prdMINQTY", this.minqty);;
return html;
};
}
要使用Java Script显示数据,这里container
是div,我刚刚在jsp页面中调用了这个div。 :
display: function display(){
var node = document.getElementById('container');
while (node.hasChildNodes()) {
node.removeChild(node.firstChild);
}
var html = "";
for(var i = 0; i < catalogue.product.length; i++){
var tableRow = new catalogue.tableRow(catalogue.product[i]);
html += tableRow.generateHTML();
}
document.getElementById('container').innerHTML = html;
}
答案 0 :(得分:0)
你可以这样做: -
onclick='addProductById("' + this.id + '","' + this.minqty +'");'
onclick
属性中的单引号未正确关闭,这就是为什么这些值不会出现的原因。
并测试它: -
function addProductById(pId, pMqty) {
// You can test the values here
alert(pId + ', ' + pMqty);
// your code here..
}