预期的功能是用户输入一定数量的组件,然后将其添加到购物车中。
这里的问题是,通过Magento Bundles,需要一个复选框来输入具有不同数量的多个选项。下面的代码启用所有复选框,这些复选框启用qty输入字段,然后隐藏复选框。
当启用复选框时,即使显示的数量为0(在$ i = 0操作的选择选项中生成),数量输入值也默认为1。
因此,即使您选择了一个组件中的2个,每个其他组件中的一个也会添加到购物车中。在提交表单时,从输入下拉列表中选择0不会返回该值。
我无法弄清楚如何将检查的默认值设置为0而不是1.我能想到的另一件事就是收集当前用户输入但是当我尝试通过$ _POST将输入存储为变量时[]它什么都不返回。
是否有人有任何其他想法或者可能知道如何将默认选中的值从1更改为0?
<input onclick="bundle.changeSelection(this)"
class="change-container-classname checkbox bundle-option-<?php echo $_option->getId() ?>
<?php if ($_option->getRequired()) echo 'validate-one-required-by-name' ?>"
id="bundle-option-<?php echo $_option->getId() ?>-<?php echo $_selection->getSelectionId() ?>"
type="checkbox"
name="bundle_option[<?php echo $_option->getId() ?>][]"
checked="checked"
defaultValue="0"
style="display:none"
<?php if (!$_selection->isSaleable()) echo ' disabled="disabled"' ?>
value="<?php echo $_selection->getSelectionId() ?>
"/>
<?php if ($_canChangeQty) : ?>
<span class="qty-opt">
<select style="width:50px;"
id="bundle-option-<?php echo $_option->getId() ?>-<?php echo $_selection->getSelectionId() ?>-qty-input"
onchange="bundle.changeOptionQty(this, event)"
<?php if ($memory_type) : ?> data-memory-type="<?php echo $memory_type; ?>"<?php endif; ?>
name="bundle_option_qty[<?php echo $_option->getId() ?>][<?php echo $_selection->getSelectionId() ?>]"
class="qty">
<?php for ($i = 0; $i <= $maxQty; $i++) : ?>
<?php if ($i <= $stockOnHand) : ?> <option value="<?php echo $i; ?>"><?php echo $i; ?></option> <?php endif; ?>
<?php endfor; ?>
</select>
</span>
<?php else: ?>
<span class="qty-opt">
<label><?php echo $this->__('Qty:') ?> </label>
<?php echo $_defaultQty ?>
</span>
<?php endif; ?>