4
'<label id="quantite" for="quantite">Quantite : </label><input id="QteSpinner" value="1"></br>'

[...]

var newSpinner = $( "#QteSpinner" ).spinner({
            min: 1
        }); 

我怎么能限制用户只在像这样的 JQuery 微调器中键入数字?

谢谢

4

6 回答 6

3

利用

{小数:0}

或者

{分钟:0}

或两者一起在选项中

于 2014-05-05T12:50:11.183 回答
2

看看这个小提琴链接。我创建了一个样本,它将限制微调器中的负数。

    var value;
    var $container=$("#QteSpinner");
    var newSpinner = $container.spinner({
        min: 1,
    }).focus(function () {
        value = $container.val();
    }).blur(function () {
        var value1 = $container.val();
        if (value1<0) {
           $container.val(value);
        }
        if(isNaN(value1))
        {
           $container.val(value);
        } 

    });

我希望这会对您有所帮助。

于 2013-05-24T14:16:29.017 回答
1

使用更改函数将非整数输入映射到合适的默认值,例如

var myspinner = $( "#myspinner" ).spinner(
    { 
    min: 1,
    change: function (event, ui ) {
        var val = myspinner.spinner( "value" );
        myspinner.spinner("value", parseInt(val,10) || 1);
        /* 
        var val = $(this).spinner( "value" );
        $(this).spinner("value", parseInt(val,10) || 1);
        */
    }
    });   

这不会阻止用户输入废话,但一旦微调器失去焦点,它将限制微调器中的值。如果您绝对必须阻止输入除数字以外的任何内容,您可以使用 keypress() 函数做一些事情。有关更多详细信息,请参阅jquery 以检查某人何时开始在字段中输入内容。

于 2013-11-06T15:56:20.793 回答
0

我是这样做的:

jQuery( "#spinner" ).spinner({ min: 0 });

jQuery( "#spinner").keyup(function() {
            if(  isNaN (jQuery(this).val() )){ //Only numbers !
                jQuery(this).prop("value", "0") ; //Back to 0, as it is the minimum
            }
      });

完毕。

于 2014-09-08T17:12:23.437 回答
0

或者您可以检查击键值,然后使用 $.isNumeric() 对其进行测试,例如:

$("#spinner").spinner({
    min: 1
}).keypress(function(e){
    key = e["originalEvent"]["key"];
    if (!$.isNumeric(key)){
        e.preventDefault();
    }
});
于 2020-03-04T07:08:44.860 回答
0

弗朗西斯科·科拉莱斯·莫拉莱斯的略有改进,因为它不会将场地归零。它只删除 alpha 条目

jQuery( "#repeat_x").keyup(function() { 
if(isNaN (jQuery(this).val() )){
    /* however only slicing off the last character instead of setting to 0 */
    jQuery(this).prop("value",jQuery(this).prop("value").slice(0, -1));
}

});

于 2020-01-11T20:56:41.463 回答