467 Stimmen

Wie man type="number" auf positive Zahlen beschränkt

Derzeit habe ich den folgenden Code

es kommt so etwas heraus

Bildbeschreibung hier eingeben

Die kleinen Auswahlpfeile rechts erlauben es, negative Zahlen einzugeben. Wie kann ich das verhindern?

Ich habe Zweifel, ob ich type="number" verwenden soll, es verursacht mehr Probleme, als es löst. Ich werde es trotzdem überprüfen, sollte ich einfach wieder zu type="text" zurückkehren?

-2voto

ANURAG GUPTA Punkte 173

Mit dem Texteingabetyp können Sie dies für eine bessere Validierung verwenden,

return (event.keyCode? (event.keyCode == 69 ? false : event.keyCode >= 48 && event.keyCode <= 57) : (event.charCode >= 48 && event.charCode <= 57))? true : event.preventDefault();

-3voto

(function ($) {
  $.fn.inputFilter = function (inputFilter) {
    return this.on('input keydown keyup mousedown mouseup select contextmenu drop', function () {
      if (inputFilter(this.value)) {
        this.oldValue = this.value;
        this.oldSelectionStart = this.selectionStart;
        this.oldSelectionEnd = this.selectionEnd;
      } else if (this.hasOwnProperty('oldValue')) {
        this.value = this.oldValue;
        //this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
      } else {
        this.value = '';
      }
    });
  };
})(jQuery);

$('.positive_int').inputFilter(function (value) {
  return /^\d*[.]?\d{0,2}$/.test(value);
});

Der obige Code funktioniert einwandfrei für alle !!! Und es wird auch verhindern, dass mehr als 2 Dezimalstellen eingefügt werden. Und wenn Sie das nicht benötigen, entfernen Sie einfach\d{0,2} oder wenn Sie eine stärker begrenzte Dezimalstelle benötigen, ändern Sie einfach die Zahl 2

-5voto

user10132380 Punkte 1

Versuchen Sie das:

Yii2 : Validierungsregel 

    public function rules() {
    return [
['location_id', 'compare', 'compareValue' => 0', 'operator' => '>'],
        ];
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X