javascript全局和jquery回调函数的错误

时间:2010-12-02 05:21:23

标签: javascript jquery arrays

我正在尝试制作一个值数组,以便查看之前是否添加了该值。

如果已显示警告。 如果它没有将它添加到数组并对服务器进行post ajax查询以检索相应的表行。

对于javascript而言,我主要是一个新手,我发现很难调试,因为语法错误会破坏整个脚本。

这是我的代码,如果有人看到错误,你可以告诉我如何解决它。

如果你知道一个程序来帮助调试那些非常有用的java脚本。

我知道jquery调用工作正常,因为我之后添加了数组检查。

var selectedProductsArray = new array();
var selectedProductsCount = 0;

$(function() {
    $('.selectProductID').live('click', function(event) {

        var count = 0;
        var found = false;
        while(count < selectedProductsCount)
        {
            if(selectedProductsArray[count] == $(this).val())
            {
                found = true;
                break;
            }
            count++;
        }

        if(found)
        {
            alert("you can only add one line for each product.");
        }else{
            selectedProductsArray[selectedProductsCount] = $(this).val();
            selectedProductsCount++;
            $.post("order/getitem", "ProductID="+$(this).val(), function(data){
                $("#orderItems tbody").append(data);
                selectedProductsCount++;
            });
        }
        return false;
    });
});

1 个答案:

答案 0 :(得分:0)

首先,没有“阵列”类,所以我很惊讶你甚至通过了那个;你想要的:

var selectedProductsArray = new Array();

var selectedProductsArray = [ ];

此外,您不需要反复计算$(this).val(),您应该说:

var count = 0;
var found = false;
var value = $(this).val();

while循环上方,参考value而不是$(this).val()。当我认为你只想做一次时,你也会增加selectedProductsCount两次,这会在你的selectedProductsArray中留下空/空条目,这可能会在以后混淆。

我无法看到任何其他明显的错误,但new array()一个应该是一个显示阻止。如果没有一个功能齐全的例子,很难说。

order/getitem会被调用吗?它会发回任何东西吗?

用于调试和尝试: