e.preventDefault()后数字输入字段继续增加

时间:2018-04-10 17:36:11

标签: javascript jquery input preventdefault

聆听'点击' type =" number"的输入元素上的事件如果bin/rails db:migrate大于某个值,我想阻止输入增加。

我使用了e.currentTarget.value,但输入继续增加值。我也尝试e.preventDefault(),输入继续增加值。我也检查e.stopImmediatePropagation()的值,这是真的。此外,在记录事件时,属性e.cancelableisDefaultPrevented都是正确的。

我尝试的另一个解决方案是将输入的值设置回旧值,然后在瞬间将其更改,这是不合需要的。

有谁知道为什么会这样?

isPropagationStopped

1 个答案:

答案 0 :(得分:0)

input type="number" has max and min attribute that can be set, you can set the max attribute to constrain the element from increasing beyond a specified number. This can be achieved using HTML as below

<input id="quantity" type="number" name="quantity" min="0" max="100" >

You can also update the max attribute on the fly using javascript (for example the javascript code below changes max to 90)

document.getElementById("quantity").setAttribute("max",90);

Consider the third option below

<input type="number" name="quantity" id="quantity" />

<script>
var myinput = $("#quantity")

myinput.on('input',restrictMax)
function restrictMax(){
    //set Maximum to 5
    var max = 5;
    var value = parseFloat($(this).val())
    if($(this).val() > max){
        $(this).val(max)
    }
 }
</script>

You can also check the JSFiddle

希望这有帮助