我正在尝试制作一个值数组,以便查看之前是否添加了该值。
如果已显示警告。 如果它没有将它添加到数组并对服务器进行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;
});
});
答案 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
会被调用吗?它会发回任何东西吗?
用于调试和尝试: