2015-10-01 1 views
-3

J'ai un formulaire et je veux que les champs d'entrée de ce formulaire n'acceptent que le caractère UTF-8. Je n'ai aucune idée de comment puis-je y parvenir.Voici ma forme html. ! Merci d'avance ..Validation Javascript pour n'accepter que des caractères utf-8

<form action="" method="post" id="myform">    

<fieldset id="address"> 
    <div class="required"> 
     <label for="firstName"> 
      <span class="required-indicator">* </span> 
      <span>First Name</span> 
     </label> 
     <input class="input-text required" id="firstName" type="text" name="billto_firstname" value="" maxlength="50"> 
    </div> 

    <div class="required"> 
     <label for="lastName"> 
      <span class="required-indicator">* </span> 
      <span>Last Name</span> 
     </label> 

     <input class="input-text required" id="lastName" type="text" name="billto_lastname" value="" maxlength="50"> 
    </div> 

    <div class="required"> 
     <label for="address1"> 
      <span class="required-indicator">* </span> 
      <span>Address 1</span> 
     </label> 

     <input class="required" id="address1" type="text" name="billto_address1" value="" maxlength="50"> 
    </div> 
</fieldset> 

<fieldset> 
    <div class="row-button"> 
     <button class="continue-button" type="submit" name="submit-form" onclick="this.submit()" value="Continue"><span>Continue </span></button> 
    </div>    
</fieldset> 
</form> 
+2

Que voulez-vous dire par le caractère "utf8-8"? UTF-8 est un encodage, pas un jeu de caractères restreint. Voulez-vous dire quelque chose comme restreindre l'entrée aux caractères ASCII ou seulement aux caractères alphabétiques? – FelisCatus

+0

Où ai-je mentionné utf8-8? @ FelisCatus – piya

+0

Tags ont été supprimés @Epodax – piya

Répondre

0

Vous pouvez ajouter la validation à tous les champs de texte:

/* When all the elements of the page are loaded */ 
 
document.addEventListener('DOMContentLoaded', function() { 
 
    /* Regular expression to test if a string has only UTF-8 characters */ 
 
    var utf8 = /([\x00-\x7F]|([\xC2-\xDF]|\xE0[\xA0-\xBF]|\xED[\x80-\x9F]|(|[\xE1-\xEC]|[\xEE-\xEF]|\xF0[\x90-\xBF]|\xF4[\x80-\x8F]|[\xF1-\xF3][\x80-\xBF])[\x80-\xBF])[\x80-\xBF])*/g; 
 

 
    /* Add the 'submit' event handler to the form */ 
 
    document.getElementById('myform').addEventListener('submit', function() { 
 
    /* Get all the textfields */ 
 
    var txts = document.querySelectorAll('input[type=text]'); 
 

 
    /* Loop through them */ 
 
    for (var i = 0; i < txts.length; i++) { 
 
     /* Look if it has only utf-8 characters */ 
 
     if (txts[i].value !== txts[i].value.match(utf8)[0]) { 
 
     alert('The field should have only UTF-8 characters'); 
 
     break; 
 
     } 
 
    } 
 
    }); 
 
});
<form action="" method="post" id="myform"> 
 

 
    <fieldset id="address"> 
 
    <div class="required"> 
 
     <label for="firstName"> 
 
     <span class="required-indicator">* </span> 
 
     <span>First Name</span> 
 
     </label> 
 
     <input class="input-text required" id="firstName" type="text" name="billto_firstname" value="" maxlength="50"> 
 
    </div> 
 

 
    <div class="required"> 
 
     <label for="lastName"> 
 
     <span class="required-indicator">* </span> 
 
     <span>Last Name</span> 
 
     </label> 
 

 
     <input class="input-text required" id="lastName" type="text" name="billto_lastname" value="" maxlength="50"> 
 
    </div> 
 

 
    <div class="required"> 
 
     <label for="address1"> 
 
     <span class="required-indicator">* </span> 
 
     <span>Address 1</span> 
 
     </label> 
 

 
     <input class="required" id="address1" type="text" name="billto_address1" value="" maxlength="50"> 
 
    </div> 
 
    </fieldset> 
 

 
    <fieldset> 
 
    <div class="row-button"> 
 
     <button class="continue-button" type="submit" name="submit-form" onclick="this.submit()" value="Continue"><span>Continue </span> 
 
     </button> 
 
    </div> 
 
    </fieldset> 
 
</form>

+0

Votre script fonctionne, mais je veux que l'utilisateur sache pourquoi il ne peut pas entrer ce caractère.Pour que le texte soit apparu ... @ Buzinas – piya

+0

pourquoi modifiez votre réponse encore et encore ? @Buzinas – piya

+0

@piya Ok, j'ai édité ma réponse, donc ça marche comme tu l'as demandé. Btw, la logique est là, n'hésitez pas à la modifier pour réaliser ce que vous voulez, puisque la partie difficile qui consistait à valider les caractères UTF-8 est déjà là. – Buzinas