这是一个公认的解决方案。
步骤1:进入在线商店>主题>欧宝体育官网入口首页动作>编辑代码。-
步骤2:进入Assets >product-form.js找到这段代码
this.form。addEventListener(‘提交’,this.onSubmitHandler.bind(这));
像这样注释这段代码
/ * this.form。addEventListener(‘提交’,this.onSubmitHandler.bind(这));* /
谢谢!
这是一个公认的解决方案。
步骤1:进入在线商店>主题>欧宝体育官网入口首页动作>编辑代码。-
步骤2:进入Assets >product-form.js找到这段代码
this.form。addEventListener(‘提交’,this.onSubmitHandler.bind(这));
像这样注释这段代码
/ * this.form。addEventListener(‘提交’,this.onSubmitHandler.bind(这));* /
谢谢!
请分享您的资产>product-form.js文件代码
这是我的代码:
if (!customElements.get('product-form')) {
customElements.define('product-form',类ProductForm扩展HTMLElement {
构造函数(){
超级();
这一点。form = this.querySelector('form');
this.form。addEventListener('submit', this. onsubmithandler .bind(this));/* this.form。addEventListener(‘提交’,this.onSubmitHandler.bind(这));* /
这一点。cartNotification = document.querySelector('cart-notification');
}
onSubmitHandler (evt) {
evt.preventDefault ();
const submitButton = this.querySelector('[type="submit"]');
if (submitButton.classList.contains('loading'))返回;
this.handleErrorMessage ();
this.cartNotification.setActiveElement (document.activeElement);
submitButton。setAttribute(“aria-disabled”,真正的);
submitButton.classList.add(“加载”);
const config = fetchConfig('javascript');
配置。headers['X-Requested-With'] = 'XMLHttpRequest';
配置。body = JSON.stringify({
…JSON.parse (serializeForm (this.form)),
section: this.cartNotification.getSectionsToRender().map((section) => section.id),
sections_url: window.location.pathname
});
fetch(“${路线。cart_add_url}”,配置)
.then((response) => response.json())
.then((response) => {
If (response.status) {
this.handleErrorMessage (response.description);
返回;
}
this.cartNotification.renderContents(响应);
})
.catch((e) => {
console.error (e);
})
.finally(() => {
submitButton.classList.remove(“加载”);
submitButton.removeAttribute(“aria-disabled”);
});
}
handleErrorMessage(errorMessage = false) {
这一点。errorMessageWrapper =此。errorMessageWrapper || this.querySelector('.product-form__error-message-wrapper');
这一点。errorMessage =这个。this.errorMessageWrapper.querySelector('.product-form__error-message');
this.errorMessageWrapper。toggleAttribute(“隐藏”! errorMessage);
if (errorMessage) {
this.errorMessage.textContent = errorMessage;
}
}
});
}
请删除旧的所有代码,并添加以下新代码您的文件
if (!customElements.get('product-form')) {customElements.define('product-form'),类ProductForm扩展HTMLElement{构造函数(){super();这一点。form = this.querySelector('form');/ * this.form。addEventListener(‘提交’,this.onSubmitHandler.bind(这));* /。cartNotification = document.querySelector('cart-notification');} onSubmitHandler(evt) {evt. preventdefault ();const submitButton = this.querySelector('[type="submit"]');if (submitButton.classList.contains('loading'))返回; this.handleErrorMessage(); this.cartNotification.setActiveElement(document.activeElement); submitButton.setAttribute('aria-disabled', true); submitButton.classList.add('loading'); const config = fetchConfig('javascript'); config.headers['X-Requested-With'] = 'XMLHttpRequest'; config.body = JSON.stringify({ ...JSON.parse(serializeForm(this.form)), sections: this.cartNotification.getSectionsToRender().map((section) => section.id), sections_url: window.location.pathname }); fetch(`${routes.cart_add_url}`, config) .then((response) => response.json()) .then((response) => { if (response.status) { this.handleErrorMessage(response.description); return; } this.cartNotification.renderContents(response); }) .catch((e) => { console.error(e); }) .finally(() => { submitButton.classList.remove('loading'); submitButton.removeAttribute('aria-disabled'); }); } handleErrorMessage(errorMessage = false) { this.errorMessageWrapper = this.errorMessageWrapper || this.querySelector('.product-form__error-message-wrapper'); this.errorMessage = this.errorMessage || this.errorMessageWrapper.querySelector('.product-form__error-message'); this.errorMessageWrapper.toggleAttribute('hidden', !errorMessage); if (errorMessage) { this.errorMessage.textContent = errorMessage; } } }); }
再次欢迎。
我将所有的产品形式。js代码与你发布的。每当我点击添加到购物车时,就会出现一个错误。
请看附件的截图。
你知道怎么解决或者原因是什么吗?
谢谢。
注意:我的网站仍处于开发模式(不确定这是否与问题有关)。
请分享你的店铺网址!
谢谢!
你好,
我已经检查了你的商店,发现添加到购物车按钮不工作。我认为这是一个JS级别的问题,这会产生一个问题。请分享你的主题zip文件,我会检查代码并发送正确的解决方案给你。
谢谢!
非常感谢你的帮助!请查收附件的主题压缩文件。
注意:“添加到购物车”按钮不工作时,我替换了旧的“product-form.js”代码与你上面建议的(我目前正在使用)。如果我恢复使用旧的代码,它正常工作(添加到购物车按钮触发弹出)。
是的,您是正确的,请将旧代码替换为您的product-form.js文件。