2010-10-31 34 views
0

Im faire un textarea avec jeditable. Le contenu est enregistré et chargé à partir d'une base de données. Mais j'ai quelques problèmes dans la façon dont IE et FF traitent différemment les sauts de ligne. Après un débogage, j'ai trouvé un comportement mystérieux dans FF. Par exemple, si i entrée dans textarea:FF et IE - façon de manipuler n dans textarea

1 
2 

Il retournera

1<br>2 

Ce qui est bien. Mais si je vous écris:

1 
2 
3 

Il retourne

1<br>2<br> 
3 

Comment venir? Et comment suis-je censé faire regexp sur ce comportement anormal.

Atm. im faisant regexp:

data  : function(value, settings) { 
     /* Convert <br> to newline. */ 
     retval = value(/<br[\s\/]?>/gi, '\n'); 
     return retval; 
}, 

Ce qui fonctionne très bien dans IE, mais dans FF (à cause de ce comportement), elle retourne plus que linebreaks supposé.

Pouvez-vous m'aider?

Merci à l'avance

+0

Difficile de répondre sans savoir comment fonctionne jeditable et comment vous l'utilisez. Vous devriez avoir posté un test ou, mieux encore, essayer de reproduire le problème avec un minimum de code (c'est-à-dire sans aucun plugin) en premier. – Nickolay

Répondre

0

Si vous attendez le texte de ne pas avoir des nouvelles lignes en elle, pourquoi ne pas simplement les dépouiller avant de convertir les <br> de passages à la ligne?

value = value.replace(/(\r\n|[\r\n])/g,''); 
retval = value.replace(/<br[\s\/]?>/gi, '\n'); 
+0

Il met toujours un extra \ n dans firefox -.- –

+0

Je suppose que l'expression rationnelle ne fonctionne pas. Lors de l'utilisation de var retval = value.replace (/ \\ n/gi, 'TEST'); il ne sort aucun "TEST" –

+0

@ s0mmer alors essayez une autre regex, j'en ai pris une nouvelle d'ici: http://lawrence.ecorp.net/inet/samples/regexp-format.php – robertc