Я создал веб-хранилище для сведений о продукте (productId, name, amountonhand) и заполнил записи в нем с сервера.Я должен проверить, есть ли необходимое количество, чтобы принять заказ.
Форма продукта имеет флажки (с именем = "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;
}
Когда этот код выполняется, из-за асинхронного характера db.transaction выполняется внешний цикл и выполняется проверкатолько для последнего выбранного продукта.
Помогите мне это исправить.Я хочу, чтобы казнь происходила последовательно.
Юви