【问题标题】:Woocommerce Variation dropdown <select><options> doesnt allow arrow key navigationWoocommerce Variation 下拉列表 <select><options> 不允许箭头键导航
【发布时间】:2018-08-16 09:35:15
【问题描述】:

在我所有的 woocommerce 网站上。产品变体下拉菜单一旦选择就不允许箭头键导航。

例如,如果您从下拉列表中选择一个选项。它“取消选择”自己。

如果您想使用箭头键导航到下一个选项,则必须“重新选择”您刚刚选择的选项,然后按下箭头键,然后它会转到下一个选项并再次取消选择。

我注意到无论主题如何,我的所有 woocommerce 网站上都有此问题,但您可以在此处复制该问题:http://demo.polr.me/6

有谁知道是什么破坏了使用键盘箭头在选择字段中导航选项的能力?我可以添加一些 jquery 来强制它保持选中状态吗?

感谢您的帮助!

【问题讨论】:

    标签: jquery html wordpress select woocommerce


    【解决方案1】:

    尝试以下代码以根据您的要求更改键盘值和更改样式

        jQuery('<div class="quantity-nav"><div class="quantity-button quantity-up">+</div><div class="quantity-button quantity-down">-</div></div>').insertAfter('.quantity input');
        jQuery('.quantity').each(function() {
          var spinner = jQuery(this),
            input = spinner.find('input[type="number"]'),
            btnUp = spinner.find('.quantity-up'),
            btnDown = spinner.find('.quantity-down'),
            min = input.attr('min'),
            max = input.attr('max');
    
          btnUp.click(function() {
            var oldValue = parseFloat(input.val());
            if (oldValue >= max) {
              var newVal = oldValue;
            } else {
              var newVal = oldValue + 1;
            }
            spinner.find("input").val(newVal);
            spinner.find("input").trigger("change");
          });
    
          btnDown.click(function() {
            var oldValue = parseFloat(input.val());
            if (oldValue <= min) {
              var newVal = oldValue;
            } else {
              var newVal = oldValue - 1;
            }
            spinner.find("input").val(newVal);
            spinner.find("input").trigger("change");
          });
    
        });
    .quantity {
      position: relative;
    }
    
    input[type=number]::-webkit-inner-spin-button,
    input[type=number]::-webkit-outer-spin-button
    {
      -webkit-appearance: none;
      margin: 0;
    }
    
    input[type=number]
    {
      -moz-appearance: textfield;
    }
    
    .quantity input {
      width: 45px;
      height: 42px;
      line-height: 1.65;
      float: left;
      display: block;
      padding: 0;
      margin: 0;
      padding-left: 20px;
      border: 1px solid #eee;
    }
    
    .quantity input:focus {
      outline: 0;
    }
    
    .quantity-nav {
      float: left;
      position: relative;
      height: 42px;
    }
    
    .quantity-button {
      position: relative;
      cursor: pointer;
      border-left: 1px solid #eee;
      width: 20px;
      text-align: center;
      color: #333;
      font-size: 13px;
      font-family: "Trebuchet MS", Helvetica, sans-serif !important;
      line-height: 1.7;
      -webkit-transform: translateX(-100%);
      transform: translateX(-100%);
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      -o-user-select: none;
      user-select: none;
    }
    
    .quantity-button.quantity-up {
      position: absolute;
      height: 50%;
      top: 0;
      border-bottom: 1px solid #eee;
    }
    
    .quantity-button.quantity-down {
      position: absolute;
      bottom: -1px;
      height: 50%;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="quantity">
      <input type="number" min="1" max="9" step="1" value="1">
    </div>

    【讨论】:

    • 谢谢,但这如何适用于未选中的 woocommerce 选择字段?
    猜你喜欢
    • 1970-01-01
    • 2021-03-22
    • 2013-10-14
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 2015-08-19
    • 2017-10-21
    相关资源
    最近更新 更多