2016-04-01 9 views
0

Ich habe einen Prozentsatz Textbox. Ich möchte Werte von 0 bis 100 eingeben. Nicht mehr als 100 oder negative Werte.erlauben nur 0-100 Prozent Werte in Textfeld

FIDDLE

Bitte diese Geige überprüfen. Hier erlaubt es nur zweistellige Werte wie 99 und nach 99 erlaubt es die Anzahl der Dezimalstellen (99 .......... 9999) so. Müssen nur einen Dezimalpunkt zulassen und ich kann auch 100 eingeben.

Hinweis: nur

  1. Kann 0 bis 100 eingeben und nicht negativ und nicht mehr als 100,00
  2. Nach dezimal ich nur zwei Ziffern wie, 99.99 eingeben möge.
  3. Keine negativen Werte zulassen.
  4. Erlaube nur einen Dezimalpunkt wie (9.99 oder 99.99). Nicht (9 ....... 9..9 ... 80099 oder 99 ....... 9 ... 9).

<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>

Bitte helfen Sie mir, wie kann ich dies mit jQuery oder JavaScript tun.

+0

in html? Ich möchte in jquery oder javascript einschränken. –

+1

so etwas wie das https://jsfiddle.net/9d8ene7u/ – guradio

+0

Bitte überprüfen Sie diese Geige. Es erlaubt mehr als 100 und n Anzahl von Dezimalpunkt und negativen Wert auch. –

Antwort

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/

+0

Wenn du 0 eingibst und Pfeil nach unten drückst, kannst du negative Werte erhalten ... Auch wenn du 100 eingibst und den Pfeil nach oben drückst, fängt es bei 10, 11, 12, 13 usw. an. Aber ja, es erlaubt dir nicht 101 oder -1 eingeben! – chrisv

+0

Sobald ich einen beliebigen Dezimalwert in das Textfeld eingegeben habe, kann ich wieder keinen Wert für dasselbe Feld eingeben. –

1

Updated fiddle. Dieses es jetzt löst, aber die Verwendung von Schritt = 0,01 kann nicht sein, was Sie wollen. Wenn der Schritt auf 0.01 gesetzt wird, können wir den Gültigkeitszustand der Eingabe überprüfen.

Der Gültigkeitszustand wird nicht aktualisiert und ein "Vorher" -Ereignis, also bei einem "Nachher" -Ereignis setzen wir die Eingabe zurück.

<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; 
} 
+0

Es erlaubt bis zu 999. Und es erlaubt auch negativen Wert. Und nach dem Komma kann ich keine Werte eingeben. –

+0

@sathishkumar aktualisiert. –

+0

HALLO @ Gerard Sexton vielen Dank. Hier kann ich keine Dezimalwerte hinzufügen. Wenn ich eine Dezimalzahl hinzufüge, lösche ich das Textfeld. andere arbeiten. Ich möchte nur dezimal hinzufügen. Beispiel (99.99 oder 100) nur 2 Stellen nach dem Komma. –

Verwandte Themen