国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Mettre à jour les prix en utilisant JS et JSON avec un simple formulaire HTML
P粉294954447
P粉294954447 2023-08-18 12:38:26
0
1
634
<p>J'essaie de créer une configuration dans laquelle vous entrez un code postal, soumettez le formulaire, puis utilisez JavaScript pour vérifier si les 4 premiers caractères du code postal correspondent au code postal dans certaines données JSON, et si c'est le cas , puis modifiez le prix sur la page. Ce sera pour un site Shopify, donc toute aide sur la fa?on de l'implémenter serait formidable. </p> <p>Actuellement, lorsque je soumets le formulaire, la page s'actualise mais rien ne se passe. </p> <p>Voici ce que j'ai jusqu'à présent, encore au début?: </p> <p><br /></p> <pre class="brush:js;toolbar:false;">fonction async checkZones() { // const requestURL = "{{ 'zones.json' | Asset_url }}"; // const request = new Request(requestURL); //const réponse = wait fetch(request); // const zones = wait réponse.json(); zones const = [{ "nom": "zone 1", "codes postaux": [ "test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8", "test9", "test10" ], "co?t": 10,8 }, { "nom": "zone 2", "codes postaux": [ "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test18", "test19", "test20" ], "co?t": 16,8 } ] console.log(zones); updatePrix() } fonction updatePrix(zone) { const postcodeFormInput = document.querySelector('#postcodeForm input[type="text]"'); const codes postaux = zone.codes postaux?; pour (code const des codes postaux) { if (postcodeFormInput.value.contains(code)) { const productPrice = document.querySelector('#ProductPrice-product-template').textContent; si (code === "test1") { const newPrice = productPrice + zone.cost?; document.querySelector('#ProductPrice-product-template').innerHTML = newPrice; } } } }</pré> <pre class="brush:html;toolbar:false;"><form onsubmit="checkZones()" id="postcodeForm"> <type d'entrée="texte"> <button type="submit">Co?ts de mise à jour</button> </form><span id="ProductPrice-product-template">0,00</span></pre> <p><br /></p>
P粉294954447
P粉294954447

répondre à tous(1)
P粉388945432

Quelques questions ici

Certaines de ces questions?:

  1. Utilisez le gestionnaire d'événements de soumission et empêchez la soumission
  2. Vous ne transmettez pas de zones aux fonctions qui en ont besoin
  3. Vous devez vous assurer que les montants utilisés dans le calcul sont des nombres et non des cha?nes (cha?nes extraites de innerText et .value) - J'ai utilisé un signe plus dollar +將其轉(zhuǎn)換為數(shù)字或0(如果未定義),并使用條件鏈接運(yùn)算符?. pour gérer les codes postaux manquants
  4. Vous pouvez utiliser Find pour obtenir la zone contenant un tableau de codes postaux

const checkZones = () => {
  // 這里是一個更簡單的fetch
  //fetch("{{ 'zones.json' | asset_url }}")
  // .then(response => response.json())
  // .then(zones => updatePrice(zones));
  updatePrice(zones)
}
const postcodeFormInput = document.querySelector("#postcodeForm input[type=text]");
const productTemplate = document.getElementById('ProductPrice-product-template');
const updatePrice = (zones) => {

  const postCode = postcodeFormInput.value;
  console.log("Input",postCode)
  const cost = +zones.find(({postcodes}) => postcodes.includes(postCode))?.cost; // 如果未找到則為0
  
  if (!cost) return; // 未找到
  const productPrice = +productTemplate.textContent;
  const newPrice = productPrice + cost;
  productTemplate.innerHTML = newPrice;
};

document.getElementById("postcodeForm").addEventListener("submit", (e) => {
  e.preventDefault(); // 停止提交
  checkZones()
})
<form id="postcodeForm">
  <input type="text">
  <button type="submit">更新成本</button>
</form>
<span id="ProductPrice-product-template">0.00</span>







<script>
// 測試數(shù)據(jù),在取消注釋fetch時將其刪除
const zones = [{ "name": "zone 1", "postcodes": [ "test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8", "test9", "test10" ], "cost": 10.8 }, { "name": "zone 2", "postcodes": [ "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test18", "test19", "test20" ], "cost": 16.8 } ];
</script>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal