Verhindert Benutzer, geben Sie weitere Nummern nach 2 Ziffern vor dem Dezimalpunkt
Ich habe ein problem mit der Benutzer durch Eingabe numerischer Werte in meine Textfelder, die die gleiche Klasse.
, Was Ich Will:
- Benutzern erlauben, geben Sie nur 2 zahlen vor dem Dezimalpunkt und 2 weitere nach; ansonsten sind alle Tasten außer log Pfeil-Tasten, backspace-und entf-Taste
Aktuellen Ausgabe
- Benutzer können nur geben Sie 2 zahlen; jedoch, nachdem er/Sie fügt ein Dezimalzeichen, Sie hinzufügen können, mehr zahlen, bevor es
- Derzeit können die Benutzer nur geben Sie 5 Ziffern--2 vor dem Komma, und die anderen 2 nach dem Dezimalpunkt. Wenn Sie löschen eine Stelle nach dem Komma, können Sie noch mehr hinzufügen Nummer Ziffer vor das Komma.
Mein HTML:
<form method="post">
<div class="row">
<label>Val 1</label>
<input type="text" class="validate" name="val1" maxlength="5" />
</div>
<div class="row">
<label>Val 2</label>
<input type="text" class="validate" name="val2" maxlength="5" />
</div>
<div class="row">
<label>Val 3</label>
<input type="text" class="validate" name="val3" maxlength="5" />
</div>
<div class="row">
<button type="submit">Send</button>
</div>
</form>
Meine JS:
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;
};
$('.validate').keypress( function( event ) {
var v = parseFloat($(this).val() + String.fromCharCode(event.which));
textValue = parseFloat(v).toString();
var newVal = parseInt( textValue.substr(0, textValue.indexOf(".")) );
console.log(newVal);
if(textValue.length < 6){
if(!parseFloat(v).between(0,99.99,true)) {
v = this.value.substring(0, 2);
$(this).val(v);
return false;
}
return true;
}
});
Hier ist der link zu meinem fiddel /DEMO
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies :
Warum nimmst du nicht eine regex zu validieren, Ihre Anforderung?
Einem einfachen regex etwa so:
[0-9]{1}[0-9]{1}[\.]{1}[0-9]{1}[0-9]{1}
können verwendet werden zur Validierung der Eingabe, ohne sich Gedanken über die wichtigsten Schläge. Fügen Sie einfach ein
onblur
Ereignis auf dem Textfeld, dies zu überprüfen.EDIT:
Habe ich dieses Fiddle
Check it out.