2013-06-18 10 views
7

Chcę wyłączyć zapisywanie w polu o numerze typu, aby uniknąć danych łańcuchów i pisać tylko liczby, więc jak włączyć tylko paski przewijania?Wyłączanie pisania w typie wejściowym o numerze HTML5

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

dwa to samo, myślę, że to, co chcę zrobić, to jasne, wybranie numeru typu zezwól tylko na dane liczbowe, więc włącz tylko paski przewijania – Somar

+0

Nie możesz po prostu użyć atrybutu 'readonly'? Obsługiwany jest dla numeru typu –

+0

@Uwaga wyłączania zapisu w typie wejściowym numer HTML5 "Musisz zmienić nagłówek swojego pytania, które wprowadza w błąd. – NetStarter

Odpowiedz

19

Jeśli jesteś w stanie/możesz używać jQuery, możesz wyłączyć keypress na type='number'.

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

Umożliwia to użycie strzałek w górę iw dół na wejściu, ale nie pozwala na wprowadzanie danych z klawiatury.

+0

TAK! Tego właśnie szukam. Dziękujemy – Somar

+0

Może coś zmieniło się od '13, teraz naciśnięcie klawisza nie zadziała dla klawiszy Delete i Backspace, to wszystko spowoduje usunięcie wartości, użyłem keydown, który obejmuje wszystkie –

-1

Po pierwsze, Twój znacznik jest nieprawidłowy. Tagi formularz należy otoczyć tag wejściowy:

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

Po drugie, jeśli używasz HTML5 i chcą wejście numer, można użyć to:

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

(od W3Schools)

Be zdaje sobie sprawę, że obecne implementacje przeglądarki "numeru" różnią się.

Następnie powołujesz się na wartość za pomocą JavaScriptu lub przekazujesz ją za pomocą formularza.

+0

... jeśli chodzi o bit o "paski przewijania", nie jestem pewien co masz na myśli! – TheTurkey

+0

forma: wejście jest znakiem sprężyny, jest poprawne. dzięki za odpowiedź – Somar

+0

Tylko komentarz .. Nigdy nie ufaj W3Schools ... http://w3fools.com/ –

0

Bez przewijania, bez przyrostów liczb, maks. Podana długość, bez wklejania.

Sprawdź poniżej Fiddle, które ma funkcje wymagane w polu formularza numeru typu.

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

Powiązane problemy