当前位置:  开发笔记 > 编程语言 > 正文

检测数字输入微调器点击

如何解决《检测数字输入微调器点击》经验,为你挑选了0个好方法。

我有一个带有min="1"max="12"值集的简单数字输入,这用作小时选择器.我希望它可以在几小时内循环,所以当你到达12并按下"向上"箭头时,它会返回到1反之亦然.

现在我有这个主要工作:

var inputTimer = null;

function cycle(element) {
  if (element.attributes.max && element.attributes.min) {
    var prevVal = element.value;
    inputTimer = setTimeout(function() {
      if (prevVal === element.attributes.max.value) {
        element.value = element.attributes.min.value;
      } else if (prevVal === element.attributes.min.value) {
        element.value = element.attributes.max.value;
      }
    }, 50);
  }
}

$("input[type='number']")
  .on("mousedown", function(e) {
    //this event happens before the `input` event!
    cycle(this);
  }).on('keydown', function(e) {
    //up & down arrow keys
    //this event happens before the `input` event!
    if (e.keyCode === 38 || e.keyCode === 40) {
      cycle(this);
    }
  }).on('input', function(e) {
    //this event happens whenever the value changes
    clearTimeout(inputTimer);
  });

工作演示

我遇到的问题是我找不到一种方法来检测输入中的箭头微调器是否已被点击,或者只是单击了整个输入.现在它有一个问题,当值当前处于1或时,当您单击字段中的任何位置时它会更改值12

有没有办法检测文本字段中的微调器/箭头上是否发生了单击事件?

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有