Bonjours à tout les zéros !

J'ai dans une variable le contenu d'un textarea qui peut contenir des retours à la ligne.
Je voudrais l'afficher dans une div en convertissant les balises html mais en respectant les saut de lignes présent dans le textarea. Comment faire ?

Voici mon script :

var new_text = text_edit.parent().parent().find(".contenu_textarea").val();
text_edit.parent().parent().parent().find(".contenu_text_change").text(new_text);

Avec ce script, les balises html sont bien encodées mais les retours à la ligne ne sont pas présent.
Comment faire ?

Cordialement, Corentin.

3 réponses


Grafikart
Réponse acceptée

Mmh pas vraiment de solution là sauf si tu trouve un équivalent du htmlentities en Js :D

ça marche pas ça ? (si j'ai bien compris ton problème)

text_edit.parent().parent().parent().find(".contenu_text_change").text(new_text.replace('\n','<br>'));
Hirod
Auteur

Non car le <br> ne sera pas executé mais affiché ^^

Sinon, merci Grafikart, j'en est trouvé une et ça marche ^^

Pour les curieux :

function htmlspecialchars(string, quote_style, charset, double_encode) {
    var optTemp = 0, i = 0, noquotes = false;
    if(typeof quote_style === 'undefined' || quote_style === null) {
        quote_style = 2;
    }
    string = string.toString();
    if(double_encode !== false) {
        string = string.replace(/&/g, '&');
    }
    string = string.replace(/</g, '<').replace(/>/g, '>');
    var OPTS = {
        'ENT_NOQUOTES': 0,
        'ENT_HTML_QUOTE_SINGLE': 1,
        'ENT_HTML_QUOTE_DOUBLE': 2,
        'ENT_COMPAT': 2,
        'ENT_QUOTES': 3,
        'ENT_IGNORE': 4
    };
    if(quote_style === 0) {
        noquotes = true;
    }
    if(typeof quote_style !== 'number') {
        quote_style = ].concat(quote_style);
        for(i = 0; i < quote_style.length; i++) {
            if(OPTS[quote_style[i]] === 0) {
                noquotes = true;
            } else if(OPTS[quote_style[i]]) {
                optTemp = optTemp | OPTS[quote_style[i]];
            }
        }
        quote_style = optTemp;
    }
    if(quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
        string = string.replace(/'/g, ''');
    }
    if (!noquotes) {
        string = string.replace(/"/g, '"');
    }
    return string;
}