如何在jQuery中的函数调用中传递2个值

时间:2013-11-19 07:13:06

标签: java javascript jquery servlets

您好我有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;
}

1 个答案:

答案 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..
}