Javascript 如何使html数字输入回绕

Javascript 如何使html数字输入回绕,javascript,html,Javascript,Html,所以我的问题是,如果你有一个最大值为{100}和最小值为{50}的HTML数字输入,你如何使它在设置为50时按下向下箭头,回到100。我试图通过操纵onChange handler方法手动执行此操作,但这会影响输入框的输入能力,因此如果我开始输入100,第一个按下的键1会低于50并将其设置为50 您可以使用闭包跟踪输入中的值,然后根据元素自己的最小和最大属性检查更新的值。如下所示: 函数tickerinitVal,el,max,min{ var currentValue=initVal; 返回

所以我的问题是,如果你有一个最大值为{100}和最小值为{50}的HTML数字输入,你如何使它在设置为50时按下向下箭头,回到100。我试图通过操纵onChange handler方法手动执行此操作,但这会影响输入框的输入能力,因此如果我开始输入100,第一个按下的键1会低于50并将其设置为50

您可以使用闭包跟踪输入中的值,然后根据元素自己的最小和最大属性检查更新的值。如下所示:

函数tickerinitVal,el,max,min{ var currentValue=initVal; 返回函数{ 如果currentValue==n{ 如果n==max{ el.值=最小值; }如果n==min,则为else{ el.值=最大值; } } 电流值=n; } } var target=document.querySelector'myNumber'; var updateEl=tickertarget.value,target,target.max,target.min; document.querySelector'myNumber'。addEventListener'click',e=>updateEle.target.value; 每次输入值更改时,更改处理程序都会触发。您需要使用John在评论中提到的keyup处理程序

$'input'。在'keyup'上,当按下一个键然后释放时,函数{//触发 如果e.which==38{//检查按下的键是否为向上箭头 var val=$'input'.val; if!isNaNval{//检查该值是否为有效数字 val++; 如果val>100 val=50;//如果超过100,返回到50 如果val<50 val=100;//反之亦然 $'input'.valval; } else$'input'.val50;//如果该值不是数字,则将其设置为50 } 如果e.which==40{//检查按下的键是否为向下箭头 var val=$'input'.val; 如果!isNaNval{ val-; 如果val>100,则val=50; 如果val<50,则val=100; $'input'.valval; } else$'input'.val50; } }; 大概是这样的: const input=document.querySelector'input'; input.addEventListener'keydown',e=>{ const min=parseIntinput.min; const max=parseIntinput.max; ife.keyCode===38 | | e.code===='ArrowUp'{ e、 防止违约; 输入.value++; ifinput.value>max input.value=min; } ife.keyCode===40 | | e.code===='ArrowDown'{ e、 防止违约; 输入值-; i输入值<最小输入值=最大值; } } /*隐藏旋转按钮*/ 输入[类型=编号]:-webkit内部旋转按钮, 输入[type=number]:-webkit外部旋转按钮{ 显示:无; } 输入[类型=数字]{ 字号:3em; }
请发布您的代码。使用onkeyup处理程序,查找向上箭头键和向下箭头键并进行适当处理。谢谢@johnheridan也无法发布代码。对于客户。如果您需要代码方面的帮助,您需要发布它,否则我们无法提供帮助,也不能将其作为一个适当的问题。此外,我们不需要客户的代码,我们需要一个重现问题的代码。当输入一个数字时,不会同时触发onChange和keyup吗?哦,我想我明白了。我应该检查在值===100时是否点击了向上箭头,然后将输入设置为50,这样就对了。我在代码中添加了一些注释来解释每一行的作用。此外,如果这个答案正确地解决了您面临的问题,您是否可以将其标记为已接受?这会给我一些声誉,我需要在帖子上发表评论。但是你的代码没有运行。但我想我明白了。啊……好吧,我误解了你的要求。无论如何,谢谢你让我知道这个答案出了什么问题。干杯