2010-10-04 7 views
0

Mon pote au travail m'a dit que vous pouviez utiliser jQuery pour écrire quelques lignes de code qui trouveraient un seul caractère (dans cet exemple '\0') et le remplacer pour toutes les zones de texte et les zones de texte sur la page. Bien sûr, il n'a pas dit quelles lignes de code le feraient ...jQuery - Nettoie les données dans toutes les zones de texte/zones de texte dans un formulaire?

Y at-il un moyen simple de faire cela? Nous avons un problème de personnes copiant des données d'un ancien système et les données ayant un '\0' à la fin du texte. Cela est ensuite enregistré dans la base de données, puis lors du retour de la base de données sur le client, une erreur est générée. Je suis d'accord avec la réponse de Magnar, mais juste pour apprendre, quelqu'un connaît-il un moyen de le faire?

+0

J'ai ajouté comment vous alliez le faire à ma réponse. :-) – Magnar

Répondre

5

Ce n'est pas un travail pour jQuery. Je vous recommande fortement de supprimer le caractère nul du côté serveur, pour des raisons de stabilité et de sécurité.

Cependant, c'est comment vous le faire (un peu bavard):

var remove_null_character = function() { 
    var field = $(this), 
     old_value = field.val(), 
     new_value = old_value.replace('\0', ''); 
    field.val(new_value); 
}; 
$("input:text, textarea").live("blur", remove_null_character); 
+0

Je suis entièrement d'accord avec ce btw, +1 –

+0

Merci! C'est facile, mais je suis d'accord, je vais garder cette logique sur le serveur. – Martin

1

Javascript rechercher/remplacer la chaîne des fonctions que vous pouvez utiliser. jQuery peut récupérer les nœuds d'entrée spécifiques pour vous, mais la recherche/remplacement est juste javascript simple:

str = str.replace('\0', ''); 

The replace function travaille également avec des expressions régulières par ailleurs, dans le cas où vous avez besoin quelque chose de plus puissant.

Questions connexes