在文本框中仅允许0-100%的值

时间:2016-04-01 06:06:11

标签: javascript jquery html css

我有一个百分比文本框。我想输入值0到100.不超过100或负值。

FIDDLE

请检查这个小提琴。在这里,它只允许像99这样的2位数值,在99之后允许这样的小数位数(99 .......... 9999)。需要只允许一个小数点,我也可以输入100。

注意:

  1. 可以输入0到100而不是负数且不超过100.00
  2. 小数点后我想只输入2位数,例如99.99。
  3. 不允许负值。
  4. 只允许一个小数点,如(9.99或99.99)。不(9 ....... 9..9 ... 80099或99 ....... 9 ...... 9)。
  5. <script>
      function check(e,value){
        //Check Charater
        var unicode=e.charCode? e.charCode : e.keyCode;
        if (value.indexOf(".") != -1)if( unicode == 46 )return false;
        if (unicode!=8)if((unicode<48||unicode>57)&&unicode!=46)return false;
      }
      function checkLength(){
        var fieldVal = document.getElementById('txtF').value;
        //Suppose u want 3 number of character
        if(fieldVal < 100){
          return true;
        }
        else
        {
          var str = document.getElementById('txtF').value;
          str = str.substring(0, str.length - 1);
          document.getElementById('txtF').value = str;
        }
      }
    </script>
        
    <input id="txtF" type="number" onKeyPress="return check(event,value)" onInput="checkLength()" />
    <p id="s"></p>

    请帮助我如何使用jQueryJavaScript

    执行此操作

2 个答案:

答案 0 :(得分:1)

Updated fiddle.现在解决了这个问题,但是使用step = 0.01可能不是你想要的。将步骤设置为0.01允许我们检查输入的有效性状态。

有效状态未更新为&#34;之前&#34;事件发生在&#34;之后&#34;事件我们回滚输入。

<input id="txtF" type="number" onInput="return check(event,value)" min="0" max="100" step="0.01" />

check = function (e,value){
    if (!e.target.validity.valid) {
        e.target.value = value.substring(0,value.length - 1);
        return false;
    }
    var idx = value.indexOf('.');
    if (idx >= 0 && value.length - idx > 3) {
        e.target.value = value.substring(0,value.length - 1);
        return false;            
    }
    return true;
}

答案 1 :(得分:0)

<script>
var point=false;
var count=0;
function check(e,value){

//Check Charater
debugger;
if(count==3)return false;
    var unicode=e.charCode? e.charCode : e.keyCode;

    if( unicode == 46 && point==true)
           return false;
    if( unicode == 46 && point==false)
    {
            point=true;
    }
    if (unicode!=8)if((unicode<48||unicode>57)&&unicode!=46)return false;
    if(point==true)count++;
}
function checkLength(){
var fieldVal = document.getElementById('txtF').value;
//Suppose u want 3 number of character
if(fieldVal <= 100){
    return true;
}
else
{
    var str = document.getElementById('txtF').value;
    str = str.substring(0, str.length - 1);
document.getElementById('txtF').value = str;
}
}
</script>

<input id="txtF" type="number" onKeyPress="return check(event,value)" onInput="checkLength()" />
    <p id="s"></p>

http://jsfiddle.net/ySt7S/130/