2010-10-30 6 views
2

J'ai un champ de texte dans lequel les utilisateurs entrent une chaîne d'URL, qui ne peut pas contenir d'espaces ou de caractères non alphanumériques (si c'est une façon précise de le mettre).Restreindre les caractères entrés dans un champ de texte

est-il un moyen de Rails pour restreindre l'entrée dans le text_field lui-même de sorte que les espaces et les caractères comme/":} {# $^@ peut être évité

Merci beaucoup


?.

Pour clarifier, les seuls caractères qui devraient être possibles sont des lettres et des chiffres

Répondre

2

Le problème ici est que les chaînes d'URL peuvent avoir des barres obliques (/) et des marques de hachage (#). Donc votre regex va être assez complexe pour s'assurer que la bonne partie du champ est correctement filtrée. Pour filtrer les caractères, vous pouvez utiliser regex simple pour supprimer tous les caractères non alphanumériques.

Je ne sais pas quoi que ce soit au sujet de rubis spécifique, mais en javascript droit:

<html> 
    <body> 
     <form> 
      <input type="text" name="whatever" id="form-field" value="" /> 
     </form> 
    </body> 
    <script type="text/javascript"> 
     var oFormField = document.getElementById('form-field'); 
     oFormField.onkeyup = function() { 
      oFormField.value = oFormField.value.replace(/[^a-zA-Z0-9]/, ''); 
     } 
    </script> 
</html> 
1

Vous utiliser des outils jQuery validateur qui utilise 5 balises HTML pour valider vos formulaires. Ceci est un excellent moyen de valider vos formulaires de manière Unobscursive sans mettre JS partout dans vos formulaires :-). Regardez la balise HTML "pattern" qui vous permet de valider un champ par rapport à un Regexp.

http://flowplayer.org/tools/validator/index.html

+0

+1 Merci beaucoup Slainer! – sscirrus

+0

Ce lien ne fonctionne plus. – fatfrog

Questions connexes