HTML5顺序执行

HTML5顺序执行,html,storage,sequential,Html,Storage,Sequential,我已经为产品详细信息(productId、name、quantityonhand)创建了一个web存储,并从服务器将记录填充到其中。我必须确认所需数量是否可接受订单 对于web存储中可用的每个产品,产品表单都有复选框(带有name=“Product”),并有相应的文本输入字段来接受所需的数量 验证方法定义如下 function productValidation(){ for(i=0;i<document.Products.product.length;i++){

我已经为产品详细信息(productId、name、quantityonhand)创建了一个web存储,并从服务器将记录填充到其中。我必须确认所需数量是否可接受订单

对于web存储中可用的每个产品,产品表单都有复选框(带有name=“Product”),并有相应的文本输入字段来接受所需的数量

验证方法定义如下

function productValidation(){

    for(i=0;i<document.Products.product.length;i++){

        // checking whether the product has been checked / choosen

        if (document.Products.product[i].checked==true){
        var productId = document.Products.product[i].value;
            var qty = document.Products.p[i].value;
            var db = systemDB;

            // validating the available quantity 

            db.transaction(
                function(transaction){
                    transaction.executeSql('select * from product where productId=?;', 
                    [productId], 
                    function(transaction, results){
                        for (var j=0; j<results.rows.length; j++) {
                            var row = results.rows.item(j);
                            if (qty>row['qoh']){
                                alert(
                                    row['productname'] 
                                    + ' is out of stock. We can serve you only ' 
                                    + row['qoh'] + ' quantities currently!');                                    
                                document.Products.product[i].checked = false;                     
                                document.Products.p[i].value = 0;
                            }
                        }
                    });
                }
            );  
        }
    }
    return false;
}
函数productValidation(){

对于(i=0;i尝试在db.transaction的回调函数中将调用链接在一起:

function productValidation(){

    checkProductsSequential(document.Products.product, 0);
    return false;
}

function checkProductsSequential(products, i)
{
    if (i < products.length)
    {
        // checking whether the product has been checked / choosen
        if (document.Products.product[i].checked==true){
            var productId = document.Products.product[i].value;
            var qty = document.Products.p[i].value;
            var db = systemDB;

            // validating the available quantity 

            db.transaction(
                function(transaction){
                    transaction.executeSql('select * from product where productId=?;', 
                    [productId], 
                    function(transaction, results){
                        for (var j=0; j<results.rows.length; j++) {
                            var row = results.rows.item(j);
                            if (qty>row['qoh']){
                                alert(
                                    row['productname'] 
                                    + ' is out of stock. We can serve you only ' 
                                    + row['qoh'] + ' quantities currently!');                                    
                                document.Products.product[i].checked = false;                     
                                document.Products.p[i].value = 0;
                            }
                        }
                        checkProductsSequential(products, i + 1)
                    });
                }
            );  
        }
        else
        {
            checkProductsSequential(products, i + 1)
        }
    }
}
函数productValidation(){
检查ProductsSequential(document.Products.product,0);
返回false;
}
功能检查产品序列(产品,i)
{
if(i<产品长度)
{
//检查产品是否已检查/选择
if(document.Products.product[i].checked==true){
var productId=document.Products.product[i].value;
var qty=单据.Products.p[i].值;
var-db=systemDB;
//验证可用数量
数据库事务(
职能(事务){
executeSql('select*from product,其中productId=?;',
[productId],
功能(事务、结果){
对于(var j=0;jrow['qoh']){
警觉的(
行['productname']
+“缺货,我们只能为您服务”
+行['qoh']+'当前数量!');
document.Products.product[i].checked=false;
document.Products.p[i].value=0;
}
}
检查产品序列(产品,i+1)
});
}
);  
}
其他的
{
检查产品序列(产品,i+1)
}
}
}