javascript - 用户无法选中超过 3 个框的条件
问题描述
{% assign type_bonbon = "Sans sucre, Gélifié, Guimauve, Nougat, Acide, Doux" | split : ", " %}
<section class="page__content">
{% capture contact_form %}
<div class="contact">
<div class="form__control">
<label class = "form__label">{{ 'contact.form.type' | t }}</label>
{% for type in type_bonbon %}
<div class = "checkbox">
<input type="checkbox" name="contact[Bonbon {{type}}]" value="OUI">{{type}}
</div>
{% endfor %}
</div>
</div>
{% endcapture %}
</section>
大家好,
我制作了一个表格,让用户检查他想要的糖果类型。但是,我希望用户在复选框中检查最多 3 个值,表单不应让用户检查超过 3 个复选框。我想我可以通过使用 Jquery 和 AJAX 来摆脱困境,但是在 shopify (liquid) 中我不知道如何实现这一点。再次感谢您的帮助
解决方案
根据已检查的计数禁用/启用未选中的
const $checks = $('.myChecks').on('change',()=>{
const checkCount = $checks.filter(':checked').length;
$checks.filter(':not(:checked)').prop('disabled', checkCount === 3);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="myChecks" type="checkbox"/>
<input class="myChecks" type="checkbox"/>
<input class="myChecks" type="checkbox"/>
<input class="myChecks" type="checkbox"/>
<input class="myChecks" type="checkbox"/>
<input class="myChecks" type="checkbox"/>
推荐阅读
- ruby-on-rails - 设计路由错误 ActionController::RoutingError (No route matches [PUT] "/"):
- excel - 尝试使用 Pandas 绘制这些数据帧组时出现 KeyError
- sql - Oracle 数据库,条件列
- php - While 循环并匹配一个 foreach 中的记录与另一个
- android - 来自 MediaMetadataRetriever 的 getScaledFrameAtTime 太慢,无法在 Android 10 中返回位图
- java - 如何显示特定字段使用 ebean 关系
- azure - Azure Cloud Shell 打开到黑屏
- html - Bootstrap 4 折叠链接 aria-expanded="true" 不起作用
- jquery - 复选框已选中 false 仅选中复选框
- r - 在 geom_text_repel 中对齐标签