传递未捕获引用的Javascript函数变量错误:在HTMLInputElement.onblur处未定义元素
所以我只是用JS编写了一个简单的购物车脚本。 下面的代码位于打开Modal时正在运行的函数中。 一切都很好,但我在input onblur函数policzKoszt()中运行,我在循环中传递localStorage中的变量,以在下一个函数中查找,并在我更改input中的QUANTITY值时将QUANTITY添加到localStorage字段传递未捕获引用的Javascript函数变量错误:在HTMLInputElement.onblur处未定义元素,javascript,Javascript,所以我只是用JS编写了一个简单的购物车脚本。 下面的代码位于打开Modal时正在运行的函数中。 一切都很好,但我在input onblur函数policzKoszt()中运行,我在循环中传递localStorage中的变量,以在下一个函数中查找,并在我更改input中的QUANTITY值时将QUANTITY添加到localStorage字段 function Koszyk(){ let cartProducts = localStorage.getItem("cartProducts"); /
function Koszyk(){
let cartProducts = localStorage.getItem("cartProducts");
//let total_price = policzKosztCalkowity();
cartProducts = JSON.parse(cartProducts);
let modal = document.querySelector(".modal-body-row");
if(modal.innerHTML.trim()!=""){
modal.innerHTML="";
}
if(cartProducts){
modal.innerHTML="";
modal.innerHTML+='<div class="col-sm-3 nazwa font-weight-bold">Nazwa</div><div class="col-sm-3 cena font-weight-bold">Cena</div><div class="col-sm-3 liczba_sztuk font-weight-bold">Ilość</div><div class="col-sm-3 liczba_sztuk font-weight-bold">Cena całkowita</div>';
if(cartProducts && modal){
cartProducts.forEach(function (Produkt){
modal.innerHTML+='<div class="col-sm-3 nazwa">'
+Produkt.nazwa+'</div><div class="col-sm-3 cena">'
+Produkt.brutto+'</div><div class="col-sm-3 liczba_sztuk"><input type="text" class="form-control" id="input-modal-ilosc" onblur="policzKoszt('+Produkt.nazwa+');Koszyk();" placeholder="ilosc" value='
+Produkt.ilosc+'></div><div class="col-sm-3 cena-total">'
+Produkt.brutto*Produkt.ilosc+'</div>';
});
modal.innerHTML+='<div class="col-md-3 ml-auto mt-5"><b>Cena za zamówienie:</b> Nic </div>';
}
}else{
modal.innerHTML="";
}
但当onblur函数运行错误时会显示:
index.html:1未捕获引用错误:未定义nazwa
在HTMLInputElement.onblur
它返回的是:
policzKoszt(纳兹瓦);Koszyk()
通过Produkt.nazwa得出的结果
但当我使用policzKoszt(“nazwa”)(在chrome中添加控制台)时。它可以完美地运行并更改localStorage中数量的值
我不知道我在这个脚本中的错误在哪里。policzKoszt(\''+Produkt.nazwa+'\')正在解决问题。policzKoszt(\''+Produkt.nazwa+'\')正在解决问题
function policzKoszt(nazwa){
var ilosc_input = document.getElementById("input-modal-ilosc");
if(ilosc_input!=null){
ilosc_input=ilosc_input.value;
}
let cartProducts = localStorage.getItem("cartProducts");
cartProducts = JSON.parse(cartProducts);
cartProducts.forEach(function (Produkt){
if(Produkt.nazwa==nazwa){
Produkt.ilosc=ilosc_input;
}
})
cartProducts = JSON.stringify(cartProducts);
localStorage.setItem("cartProducts",cartProducts);}