2013-06-18 9 views
7

Ich möchte das Schreiben in ein Feld der Typnummer deaktivieren, um Strings Daten zu vermeiden, und nur Zahlen schreiben, so wie nur Scroll-Balken zu aktivieren?Deaktivieren Schreiben in Eingabe-Typ Nummer HTML5

<form> 
<input type="number" path="note" min="1" max="20"/> 
</form> 
+0

zwei die gleiche Sache sind, denke ich, was ich will klar zu tun ist, Eingabe von Typennummer Erlauben Sie nur numerische Daten und aktivieren Sie nur die Bildlaufleisten – Somar

+0

Können Sie nicht einfach das 'readonly' Attribut verwenden? Es wird unterstützt für die Typnummer –

+0

@Souad 'deaktivieren Schreiben in Eingabe-Typ Nummer HTML5' müssen Sie die Überschrift Ihrer Frage ändern, es ist irreführend. – NetStarter

Antwort

19

Wenn Sie jQuery verwenden können/dürfen, können Sie keypress auf type='number' deaktivieren.

$("[type='number']").keypress(function (evt) { 
    evt.preventDefault(); 
}); 

Auf diese Weise können Sie verwenden oben und unten Pfeile am Eingang, aber die Tastatureingabe nicht gestattet.

+0

JA! Das ist was ich suche. Vielen Dank – Somar

+0

Vielleicht etwas seit '13 geändert, jetzt Keypress funktioniert nicht für die Tasten Löschen und Backspace, dies wird alle Benutzer, um Wert zu löschen, habe ich Keydown, die alle umfasst –

-1

Erstens ist Ihr Markup falsch. Die Formular-Tags müssen die Eingangs-Tag umgeben:

<form name="my_form"> 
    <input ...code... 
    <input ...code... 
</form> 

Zweitens, wenn Sie HTML5 verwenden und eine Nummer eingeben möchten, können Sie diese verwenden:

<input type="number" name="my_number" min="0" max="100" step="1" value="50"/> 

(von W3Schools)

Be Beachten Sie, dass die aktuellen Browserimplementierungen der Eingabe "Anzahl" variieren.

Dann referenzieren Sie den Wert mit Javascript oder lassen Sie ihn über das Formular posten.

+0

... wie für das Bit über "Bildlaufleisten", ich bin mir nicht sicher, was du meinst! – TheTurkey

+0

Form: Eingabe ist ein Federtag es ist korrekt. Danke für die Antwort – Somar

+0

Nur ein Kommentar .. Traue niemals W3Schools ... http://w3fools.com/ –

0

Kein Scrolling, keine Erhöhung der Anzahl, maximale Länge, keine Kopierpaste.

Schauen Sie sich die unten abgebildete Fiddle an, die die benötigten Funktionen innerhalb eines Formularfeldes enthält.

HTML

<form class="form-horizontal home" role="form" action="" method="post" id="payment-form" novalidate="novalidate"> 
<label for="number">Mobile number : </label> 
<input class="form-control" id="number" name="number" type="number" data-rule-required="true" aria-required="true" oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" onKeyDown="if(this.value.length==10 && event.keyCode!=8) return false;"> 
</form> 

CSS

input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
    -webkit-appearance: none; 
    margin: 0; 
} 

DEMO - JSFIDDLE

Verwandte Themen