Aktualisieren Sie Preise mit JS und JSON mit einem einfachen HTML-Formular
P粉294954447
2023-08-18 12:38:26
<p>Ich versuche ein Setup zu erstellen, bei dem Sie eine Postleitzahl eingeben, das Formular absenden und dann mithilfe von JavaScript prüfen, ob die ersten 4 Zeichen der Postleitzahl mit der Postleitzahl in einigen JSON-Daten übereinstimmen und ob dies der Fall ist , und ändern Sie dann den Preis auf der Seite. Dies wird für eine Shopify-Site gedacht sein, daher wäre jede Hilfe bei der Implementierung dort großartig. </p>
<p>Derzeit wird die Seite aktualisiert, wenn ich das Formular abschicke, aber es passiert nichts. </p>
<p>Hier ist, was ich bisher habe, noch im Anfangsstadium: </p>
<p><br /></p>
<pre class="brush:js;toolbar:false;">asynchrone Funktion checkZones() {
// const requestURL = "{{ 'zones.json' | asset_url }}";
// const request = new Request(requestURL);
//const Antwort = Warten auf fetch(request);
// const Zones = Warte auf Response.json();
const Zonen = [{
„name“: „Zone 1“,
"Postleitzahlen": [
„test1“,
„test2“,
„test3“,
„test4“,
„test5“,
„test6“,
„test7“,
„test8“,
„test9“,
„test10“
],
„Kosten“: 10,8
},
{
„name“: „Zone 2“,
"Postleitzahlen": [
„test12“,
„test13“,
„test14“,
„test15“,
„test16“,
„test17“,
„test18“,
„test19“,
„test18“,
„test19“,
„test20“
],
„Kosten“: 16,8
}
]
console.log(zonen);
updatePrice()
}
Funktion updatePrice(zone) {
const postcodeFormInput = document.querySelector('#postcodeForm input[type="text]"');
const postcodes = zone.postcodes;
for (const code of postcodes) {
if (postcodeFormInput.value.contains(code)) {
const productPrice = document.querySelector('#ProductPrice-product-template').textContent;
if (code === "test1") {
const newPrice = productPrice + zone.cost;
document.querySelector('#ProductPrice-product-template').innerHTML = newPrice;
}
}
}
}</pre>
<pre class="brush:html;toolbar:false;"><form onsubmit="checkZones()" id="postcodeForm">
<input type="text">
<button type="submit">Kosten aktualisieren</button>
</form><span id="ProductPrice-product-template">0,00</span></pre>
<p><br /></p>
这里有一些问题
其中一些问题:
+
将其转换为数字或0(如果未定义),并使用条件链接运算符?.
来处理缺少的邮政编码