客户可以在magento网站的结帐过程中添加折扣代码。
这是相关的代码段落:
<div class="payment-option _collapsible discount-code _active">
<form class="form form-discount" id="discount-form">
<div class="payment-option-inner">
<div class="field">
<label class="label" for="discount-code">
<span data-bind="i18n: 'Enter discount code'">Geben Sie den Rabatt-Code ein</span>
</label>
<div class="control">
<input class="input-text" type="text" id="discount-code" name="discount_code" placeholder="Geben Sie den Rabatt-Code ein">
</div>
</div>
</div>
<div class="actions-toolbar">
<div class="primary">
<button class="action action-apply" type="submit" data-bind="'value': $t('Apply Discount'), click: apply" value="Rabatt anwenden">
<span><span>Rabatt anwenden</span></span>
</button>
</div>
</div>
</form>
</div>
为了使我们的客户更容易,我想将折扣代码写入本地存储并自动为它们填充折扣字段。这一切都很好。然而,当提交表单或点击按钮时(通过Javascript或在浏览器中手动),表单返回一个错误,代码无效。
查看控制台,没有发送输入字段的值,而是将一个空字符串传递给Magento进行验证。这显然会返回错误消息。
谁能给任何指导,我是什么时候自动设置折扣代码丢失?这是脚本中的相关段落:
document.getElementById('discount-code').value = discountCode;
var discountSection = document.getElementsByClassName("discount-code")[0];
var discountButton = discountSection.getElementsByClassName("action-apply");
discountButton[0].click()
使用submit()的将重新加载页面并丢失折扣代码,因此单击按钮似乎是可行的方法。我错过了一些过程,我需要使形式"实现";有输入吗?
看起来您丢失了一个类为discount-code
的对象。我看到您使用它作为名称和id,但没有使用类,因此getElementsByClassName
返回空,因为没有具有该类的元素。
我想你的意思是使用actions-toolbar
类。