如何使用jquery限制文本字段中的数字

如何使用jquery限制文本字段中的数字,jquery,jsp,Jquery,Jsp,我想在我的文本框中限制最多两个数字。但是当一个点(即一个点)出现时,限制必须解除,在该点之后,限制可以扩展到4 也就是说,如果我尝试键入100,则启用限制并限制键入最多10。但是如果我键入10.303,则启用我 我是jquery新手。我尝试了很多方法,但都不管用。任何帮助都是非常值得的以下是解决方案: 试试这个: $(函数(){ $(“.txt”).on(“键控”,函数(事件){ //不处理backspace、delete、pgup/pgdn、home/end或箭头键: 如果(event.ke

我想在我的文本框中限制最多两个数字。但是当一个点(即一个点)出现时,限制必须解除,在该点之后,限制可以扩展到4

也就是说,如果我尝试键入100,则启用限制并限制键入最多10。但是如果我键入10.303,则启用我


我是jquery新手。我尝试了很多方法,但都不管用。任何帮助都是非常值得的

以下是解决方案:

试试这个:

$(函数(){
$(“.txt”).on(“键控”,函数(事件){
//不处理backspace、delete、pgup/pgdn、home/end或箭头键:
如果(event.keyCode==8 | | event.keyCode==46 | | event.keyCode>=33&&event.keyCode 1)
{
shift();
deplaces=件。连接(“”)。替换(“”-“”);
}
//大于99.9999的句柄数…:
如果(整数>99.9999 | |整数===99.9999&&parseInt(deplaces)>0)
{
整数=“99”;
decPlaces=getZeroedDecPlaces(decPlaces);
警报(“编号必须介于0和99之间”);
}//…且小于0:
else if(parseInt(整数)<0)
{
整数=“0”;
decPlaces=getZeroedDecPlaces(decPlaces);
警报(“编号必须介于0和99之间”);
}
//处理超过四位小数:
如果(deplaces.length>4)
{
deplaces=deplaces.substr(0,4);
警报(“数字不能超过四位小数”);
} 
var newVal=hasDecPlace?整数+'.+deplaces:整数;
$(currentEl).val(newVal);
});
函数getZeroedDecPlaces(decPlaces){
如果(deplaces=='')返回“”;
else if(deplaces.length==1)返回“0”;
否则如果(deplaces.length>=2)返回“00”;
}
});

以下是解决方案:

试试这个:

$(函数(){
$(“.txt”).on(“键控”,函数(事件){
//不处理backspace、delete、pgup/pgdn、home/end或箭头键:
如果(event.keyCode==8 | | event.keyCode==46 | | event.keyCode>=33&&event.keyCode 1)
{
shift();
deplaces=件。连接(“”)。替换(“”-“”);
}
//大于99.9999的句柄数…:
如果(整数>99.9999 | |整数===99.9999&&parseInt(deplaces)>0)
{
整数=“99”;
decPlaces=getZeroedDecPlaces(decPlaces);
警报(“编号必须介于0和99之间”);
}//…且小于0:
else if(parseInt(整数)<0)
{
整数=“0”;
decPlaces=getZeroedDecPlaces(decPlaces);
警报(“编号必须介于0和99之间”);
}
//处理超过四位小数:
如果(deplaces.length>4)
{
deplaces=deplaces.substr(0,4);
警报(“数字不能超过四位小数”);
} 
var newVal=hasDecPlace?整数+'.+deplaces:整数;
$(currentEl).val(newVal);
});
函数getZeroedDecPlaces(decPlaces){
如果(deplaces=='')返回“”;
else if(deplaces.length==1)返回“0”;
否则如果(deplaces.length>=2)返回“00”;
}
});

你试过吗?包括在OPyes中..但不起作用..使用maxlength我可以限制使用html。但是如何为点(.)符号循环?你试过吗?包括在OPyes中..但不起作用..使用maxlength我可以限制使用html。但是如何为点(.)符号循环
$(function () {
    $(".txt").on("keyup", function(event) {
        // don't handle backspace, delete, pgup/pgdn, home/end, or arrow keys:
        if (event.keyCode === 8 || event.keyCode === 46 || event.keyCode >= 33 && event.keyCode <= 40) return false;

        var currentEl = $(this);
        var value = $(currentEl).val();

        // remove letters...
        value = value.replace(/[^0-9.-]/g, "");

        var hasDecPlace = value.match(/\./);

        // separate integer from decimal places:
        var pieces = value.split('.');
        var integer = pieces[0].replace('-', '');
        var decPlaces = ""
        if (pieces.length > 1)
        {
            pieces.shift();
            decPlaces = pieces.join('').replace('-', '');
        }

        // handle numbers greater than 99.9999... :
    if (integer > 99.9999 || integer === 99.9999 && parseInt(decPlaces) > 0)
        {
            integer = "99";
            decPlaces = getZeroedDecPlaces(decPlaces);
            alert("number must be between 0 and 99");
        } // ...and less than 0:
        else if (parseInt(integer) < 0)
        {
            integer = "0";
            decPlaces = getZeroedDecPlaces(decPlaces);
            alert("number must be between 0 and 99");
        }



// handle more than four decimal places:
        if (decPlaces.length > 4)
        {
            decPlaces = decPlaces.substr(0, 4);
            alert("number cannot have more than four decimal places");
        } 


        var newVal = hasDecPlace ? integer + '.' + decPlaces : integer;

        $(currentEl).val(newVal);
    });

    function getZeroedDecPlaces(decPlaces) {
        if (decPlaces === '') return '';
        else if (decPlaces.length === 1) return '0';
        else if (decPlaces.length >= 2) return '00';
    }
});