2011-12-17 13 views
96

W jaki sposób mogę ograniczyć lub ograniczyć użytkownika do wpisywania w polu tekstowym maksymalnie pięciu znaków?Ogranicz limit znaków dozwolonych w polu wprowadzania tekstu formularza

Poniżej znajduje się pole wprowadzania jako część mojej postaci:

<input type="text" id="sessionNo" name="sessionNum" /> 

Czy używając coś podobnego maxSize czy coś takiego?

+13

Tutaj '' ** żywo demo: ** http://jsfiddle.net/mcBbW/1/ –

Odpowiedz

134

maxlength:

Maksymalna liczba znaków, które będą akceptowane jako dane wejściowe. Może być większa niż określona przez SIZE, w którym to przypadku odpowiednio przewinie się pole . Wartość domyślna jest nieograniczona.

<input type="text" maxlength="2" id="sessionNo" name="sessionNum" onkeypress="return isNumberKey(event)" /> 

Jednak to może być lub nie być dotknięte przez przewodnika. Może być konieczne użycie lub dodanie innej funkcji obsługi w celu przetestowania długości.

+0

Ta odpowiedź okazała się przydatna przy ograniczaniu w fazie wprowadzania. Możesz również ograniczyć go w fazie sprawdzania poprawności podczas przesyłania i wyświetlać komunikat sprawdzania poprawności za pomocą atrybutu "wzorzec". Zobacz http://stackoverflow.com/questions/10281962/is-there-a-minlength-validation-attribute-in-html5 – ibgib

24

Najprostszym sposobem, aby to zrobić:

maxlength="5" 

Tak .. Dodanie tego atrybutu kontrolą:

<input type="text" 
    id="sessionNo" 
    name="sessionNum" 
    onkeypress="return isNumberKey(event)" 
    maxlength="5" /> 
7

Dodaj poniższe linie do nagłówka:

<script language="javascript" type="text/javascript"> 
function limitText(limitField, limitNum) { 
    if (limitField.value.length > limitNum) { 
     limitField.value = limitField.value.substring(0, limitNum); 
    } 
} 
</script> 

    <input type="text" id="sessionNo" name="sessionNum" onKeyDown="limitText(this,5);" 
onKeyUp="limitText(this,5);"" /> 
+0

'this.form.sessionNo' wydaje się podejrzane. Dlaczego nie po prostu "to"? Również 'limitCount' i' limitNum' również wydają się niepoprawne/niepotrzebne? –

+1

Poprawiono. Robiąc w ten sposób, jeśli chcesz ograniczyć to do określonych znaków lub cyfr, ale jeśli nie przejmujesz się tym, to maksymalna długość będzie działać dobrze. Powiedzmy, że jeśli chcesz, aby wartości mieściły się w przedziale od 1 do 50, lub wszystkich liczb dodatnich, itp. – codemonkeyww

+0

'this.form.sessionNo' nadal nie wydaje się właściwe. 'this' w tym kontekście wskaże' input', a nie 'document'. –

6

Według do w3c, domyślną wartością atrybutu MAXLENGTH jest liczba nieograniczona. Więc jeśli nie określisz maksimum, użytkownik może wyciąć i wkleić Biblię kilka razy i trzymać go w swoim formularzu.

Nawet jeśli podałeś MAXLENGTH do rozsądnej liczby, sprawdź dokładnie długość przesłanych danych na serwerze przed przetworzeniem (używając czegoś takiego jak php lub asp), ponieważ dość łatwo jest ominąć podstawowe ograniczenie MAXLENGTH anyway

+0

W jaki sposób użytkownik uzyskuje maksymalną długość ??? – lopezdp

+1

@lopezdp, istnieje wiele sposobów "obejścia" ograniczeń html/javascript. Najprościej sprawdzić, czy otworzyć stronę za pomocą Chrome, "sprawdzić element" i ręcznie zmodyfikować kod HTML. Bardziej wyszukany sposób poruszania się - napisz skrypt, który opublikuje dane ignorując wszelkie ograniczenia (używając biblioteki curl lub czegoś podobnego). Jako programista backend nie powinieneś ufać frontendowi sprawdzania poprawności danych - wszystkie reguły powinny być duplikowane na serwerze. Sprawdzanie poprawności frontendu to tylko sposób na zaoszczędzenie czasu dla użytkownika poprzez wskazanie oczywistych błędów bez zwracania się do serwera. –

2

I sprecyzowane zrobić to tak:

$(document).ready(function(){ 
var maxChars = $("#sessionNum"); 
var max_length = maxChars.attr('maxlength'); 
if (max_length > 0) { 
    maxChars.bind('keyup', function(e){ 
     length = new Number(maxChars.val().length); 
     counter = max_length-length; 
     $("#sessionNum_counter").text(counter); 
    }); 
} 
}); 

Wejście:

<input name="sessionNum" id="sessionNum" maxlength="5" type="text"> 
Number of chars: <span id="sessionNum_counter">5</span> 
3

uprościć

 <input type="text" maxlength="3" /> 

i użyj alertu, aby pokazać, że zostały użyte maksymalne znaki.

2
<input type="text" maxlength="5"> 

maksymalna liczba liter na wejściu to 5.

1

Można użyć <input type = "text" maxlength="9"> lub

<input type = "number" maxlength="9"> numerów lub <input type = "email" maxlength="9"> na email walidacji pojawi się

1

MaxLength

Maksymalna liczba znaków, które będą akceptowane jako dane wejściowe. Atrybut maxlength określa maksymalną liczbę znaków dozwoloną w elemencie.

Maxlength W3 schools

<form action="/action_page.php"> 
    Username: <input type="text" name="usrname" maxlength="5"><br> 
    <input type="submit" value="Submit"> 
    </form> 

Wyjście

Output Image

MINLENGTH

ng-minlength

Dyrektywa ng-MINLENGTH dodaje ograniczenie do pola wejściowego, a do walidator formularza.

Dyrektywa ng-minlength doda "nieprawidłowy" stan pola wejściowego, jeśli długość wartości jest mniejsza niż podana.

Uwaga: Jeśli wartość jest pusta, jest uznawana za poprawną.

<form name="myForm"> 
     <input name="myInput" ng-model="myInput" ng-minlength="5"> 
     <h1 ng-if="!myForm.myInput.$valid">The value is too short</h1> 
    </form> 

wyjściowy

enter image description here

maksymalna

atrybut maksymalna określa maksymalną wartość dla elementu.

Wskazówka: Użyj atrybutu max wraz z atrybutem min, aby utworzyć zakres wartości prawnych.

Uwaga: Atrybuty max i min działają z następującymi rodzajami danych wejściowych: liczba, zakres, data, data/godzina, data i godzina, miesiąc, godzina i tydzień.

<form> 
     <input type="number" name="number" max="5"> 
    </form> 

wyjściowy

enter image description here

Max and min diffrence

min

atrybut min określa minimalną wartość dla elementu.

Wskazówka: Użyj atrybutu min wraz z atrybutem max, aby utworzyć zakres wartości prawnych.

Uwaga: Atrybuty max i min działają z następującymi rodzajami danych wejściowych: liczba, zakres, data, data/godzina, data i godzina, miesiąc, godzina i tydzień.

<form > 
    <input type="number" name="quantity" min="1"><br> 
    <input type="submit"> 
    </form> 

Wyjście

enter image description here

Powiązane problemy