shopify - 如果未选择特定产品,请防止单击“添加到购物车”按钮 - Shopify
问题描述
嗨,专家们度过了愉快的一天,我在 Shopify 上有一个项目,当我在某些条件下选择特定产品时,我正在努力解决如何预防和发出警报。
我制作了一个产品模板,将集合 A 中的产品列表填充为第一组选择,将集合 B 填充为第二组选择。
这是一个产品页面,我可以从集合 A 中选择 1 个产品,也可以从集合 B 中选择 1 个产品(每个产品都有添加到购物车按钮)
条件是集合 A 需要从集合 B 中添加至少 1 个产品,而集合 B 不需要从集合 A 中添加产品。
这是我不想实现的:当单击集合 A 中的任一产品按钮时,它会发出警报,例如“需要从集合 B 中选择至少 1 个产品”
我将 cart.js 用于产品模板中的多个产品。这可能吗?还是有最简单的方法来实现这个?
谢谢
解决方案
我无法谈论 的内部工作原理cart.js
,但是您所要求的应该使用常规 Javascript 相当简单。
听起来你想做的是:
- 提交表格 A;
- 选择表格 B;
- 检查表格 B 是否选择了变体;
- 如果表单 B 中没有变体,则阻止添加到购物车操作
如果cart.js
有一种简单的方法来插入验证函数,那么我将在其中插入代码。否则,我会将验证功能添加到表单提交或单击提交按钮,以更方便的方式cart.js
发挥作用。
示例验证函数如下所示:
function validateFormA(evt){
var formB = document.forms('product-form-b'); // document.forms can access any form on the page using the appropriate ID attribute
if(!form){
// Couldn't find form, should this pass or fail?
return;
}
var variantIdField = form.id; // To access the form control with the name 'id'
var value = variantIdField.value;
if(!value){
evt.preventDefault();
return false;
}
return true;
}
推荐阅读
- javascript - 在 Firebase 上查找用户 ID
- visual-studio-code - 从 VS 代码中的 Activity Bar 中删除垂直指示线
- xml - 如何通过键号替换两个文件之间的文本
- javascript - 如何在某些条件下使用 Angular 8 中的正则表达式添加密码验证?
- back4app - 云函数在使用本地解析数据库时返回错误:“失败错误:服务器返回无效响应。”
- css - 使用 css 将引导表单组元素对齐到 50%
- sql - 完全外连接子查询工作到最后一部分然后 ORA-013113
- python - Visual Studio Code Python 扩展:默认/内置模块都不起作用(pylint、autopep8 等)
- java - 如何在模块化java项目中使用嵌入式tomcat
- botframework - 在流之间交换上下文