2016-05-05 9 views
-3

Wie füge ich ein Eingabefeld hinzu, das nur Buchstaben akzeptiert. Auch wie füge ich ein Eingabefeld hinzu, das nur Zahlen akzeptiert. Und sobald der Benutzer in einem Textfeld, das nur Zahlen akzeptiert, Buchstaben ausspricht, gibt es einen Fehler. nurPHP - wie man nur Buchstaben in einem Textfeld erlaubt. Wie kann ich nur Zahlen in einem Textfeld zulassen?

if(empty($_POST['firstname'])) 
     { 
      $errors['firstname1'] = " Required"; 
     } 

    if(empty($_POST['zip'])) 
     { 
      $errors['zip1'] = " Required"; 
     } 

    <!-- Letters only for firstname --> 

    <p> 
       <label for="firstname" class="label"><font color="#040404">*First Name:</font></label> 
       <input class="textinput" id="firstname" type="text" name="firstname" value="<?php if(isset($_POST['firstname'])) echo $_POST['firstname']; ?>" /><?php if(isset($errors['firstname1'])) echo $errors['firstname1']; ?> 
      </p> 
    <!-- Letters only for zip --> 

    <p> 

        <label for="zip" class="label"><font color="#040404">*Zip Code:</font></label> 
        <input id="zip" type="text" name="zip" value="<?php if(isset($_POST['zip'])) echo $_POST['zip']; ?>" /><?php if(isset($errors['zip1'])) echo $errors['zip1']; ?> <?php if(isset($errors['zip2'])) echo $errors['zip2']; ?> 
       </p> 
+0

Sie erwägen Javascript als eine Option? – Slim

+0

Soweit ich weiß, können Sie dies nicht nur mit PHP und HTML tun. Sie können jedoch Javascript verwenden, um Ihre Regeln "durchzusetzen". –

+0

HTML5-Muster in den Eingabefeldern? – thgs

Antwort

0

Für Zahlen, hier ist ein Ausschnitt ich mit jQuery verwenden:

$('.content').keydown(function(e){ 
    var c = (e.charCode || e.keyCode); 
    if(c<48 || c>57){ 
     return false; 
    }else{ 
     return true; 
    } 
}); 
+0

PHP-Tag macht keinen Sinn? –

+0

Nun, Validierung der Eingabe auf dem Server ist nur ein bisschen spät, es ist vorzuziehen, unerwünschte Eingabe clientseitig zu verhindern. Andernfalls müssen Sie in PHP validieren, senden und Fehlermeldung an den Client zurückgeben und dann erneut auf eine andere Eingabe warten. Die clientseitige Steuerung verhindert unnötiges Hin und Her zwischen Client und Server. – Webomatik

+0

Ja, aber Sie müssen die Validierung serverseitig nicht vergessen. Weil das Javascript vom Client manipuliert werden kann und anfällig für Angriffe ist. –

3

wie nur Buchstaben in einem Textfeld zu ermöglichen.

Sie pattern Attribut von HTML5 können nur Buchstaben in einem Textfeld, wie dies zu ermöglichen: erlauben nur Zahlen in einem Textfeld

<input type="text" name="fieldname1" pattern="[a-zA-Z]{1,}" required> 

wie

Simillarly , machen Sie das type Attribut number, um nur Zahlen in einem Textfeld zuzulassen, so:

<input type="number" name="fieldname2" required> 

Oder verwenden Sie das pattern Attribut, wie folgt aus:

<input type="text" name="fieldname2" pattern="[0-9]{1,}" required> 

Nebenbei bemerkt: Auch wenn diese Eingabefelder auf der Client-Seite werden die Nutzer zu einem gewissen Grad beschränken, können sie nicht zuverlässig sein und deine einzige Verteidigungslinie. Verwenden Sie auf der Serverseite, um Ihre Eingabedaten streng zu validieren.

+0

das hat meinem Mann sehr geholfen. Auch für ein Textfeld wie erlaube ich nur Zahlen und Buchstaben und keine Sonderzeichen. Es ist für ein Adressfeld –

+0

@ShivPatel Machen Sie das 'Muster' Attribut wie folgt,' Muster = "[a-zA-Z0-9] {1,}" ' –

+0

@Downvoter, Würden Sie mir bitte den Grund dieses Downvote sagen ? Vielleicht kann ich davon etwas lernen. –

0

Hinweis: Dies ist für PHP nur

Wenn Sie mit PHP mit Server-Seite überprüfen möchten, können Sie verwenden:

function validate_string_spaces_only($string) { 
    if(preg_match("/^[\w ]+$]/", $string)) { 
     return true; 
    } else { 
     return false; 
    } 
} 

String consiting nur aus Buchstaben, Zahlen und Sonderräume

2

Erwägen Sie die Verwendung der PHP-Funktionen ctype_alpha & ctype_digit in Ihrer Formularvalidierung.

ctype_alpha gibt nur dann true zurück, wenn die Validierung aus Buchstaben besteht, und gibt false zurück, wenn numerische oder Sonderzeichen verwendet werden.

ctype_digit gibt nur dann true zurück, wenn die Validierung aus Zahlen besteht, und gibt false zurück, wenn alphabetische oder Sonderzeichen verwendet werden.

Hier ist ein kurzes Beispiel, das ein Array überprüfen wird. Es wird falsch zurückgegeben, da eine der Zeichenfolgen eine Zahl enthält:

$string = array('word', 'number5'); 
if (ctype_digit($string)) { 
    echo "All numbers are true!"; 
} else { 
    echo "Something's not right"; 
} 

Hoffe, das hilft!

+0

Das ist die richtige Antwort –

1

Sie benötigen keinen zusätzlichen Code zu schreiben, um Ihre Anforderung zu erfüllen

Es folgt ein Beispiel, das nur Buchstaben erlaubt (sowohl kleine als auch Kapital in beliebiger Reihenfolge).

<input id="my_id" type="text" pattern="[A-Za-z]*" class="validate"> 

Oder können Sie weitere Einschränkungen geben wie nur erlauben erste Buchstaben Kapital zu sein und Reiben in Kapitälchen mit pattern="[A-Z][a-z]*"

Um nur Zahlen zulassen verwenden pattern="[0-9]*" und nur Fix-Nummer zu ermöglichen (sagen 10) von Zahlen verwenden pattern="[0-9]{10}"

Verwandte Themen