3

キーイベントを使用して最大値の値を制限したいテキストボックスがあります

以下のコードで試してみると、うまくいきます

function validateRange(ele) {       
    if(ele.val() < 0 || ele.val() > 100){
        console.log('false');
    }else{
        console.log('true');
    }
}
$('.digit-validation').keyup(function(event){
    validateRange($(this));
});

HTML:

<form:input type="text" path="depth" cssClass="number inplace-textbox digit-validation" data-min="0" size="10" />

キープレスをif(ele.val() < 0 || ele.val() > 100)停止してください。

更新:値の範囲の検証を行おうとしています。

4

3 に答える 3

2

なぜmaxlengthHTML 属性を使用しないのですか?

<input type="text" maxlength="100" />

これを実現するために JS を使用する必要はありません。

于 2013-09-23T08:52:06.153 に答える
2

HTML5inputタイプのnumber、 withminおよびmax属性を試して使用することをお勧めします。

<input type="number" min="0" max="100" />

JS フィドルのデモ

これにより、ユーザーは (キーボードを使用するか、コピー/貼り付けを使用して) 数値を直接入力でき、step属性を使用して増分を制御できます (step="2"たとえば、スピナーをクリックするたびに 2 の増分または減分が許可されます)。矢印)。

ただし、数値以外を使用する必要inputがある場合:

Number.prototype.between  = function (a, b, inclusive) {
    var min = Math.min.apply(Math, [a,b]),
        max = Math.max.apply(Math, [a,b]);
    return inclusive ? this >= min && this <= max : this > min && this < max;
};

$('.digit-validation').keydown(function(event){
    var v = parseFloat(this.value + String.fromCharCode(event.which));
    return parseFloat(v).between(0,100,true);
});

JS フィドルのデモ

于 2013-09-23T09:05:31.500 に答える