2010-06-15 7 views
2

TextArea ressemble:JQuery. Pourquoi ne puis-je pas insérer une balise html img dans une zone de texte?

<textarea id="MessageContent" name="MessageContent"></textarea> 

JQuery ressemble:

$("#insert").live("click", function() { 
      var t = "<img width='" + result.width + "' height='" + result.height + "' alt='" + result.descr + "' src='/Images/" + result.message + "' />"; 
      $("#MessageContent").html($("#MessageContent").html() + t); 
      $("#MessageContent").focus(); 

      $("#backgroundPopup").fadeOut("fast"); 
      $("#popupContact").fadeOut("fast"); 
     });  //live 

Je peux insérer un texte simple, mais ne peut pas insérer une balise HTML.

Répondre

3

Vous voulez utiliser .val() ici au lieu de .html() pour définir une valeur de <textarea> (sinon la valeur est codée ou utilisé correctement), comme ceci:

$("#insert").live("click", function() { 
    var t = "<img width='" + result.width + "' height='" + result.height + "' alt='" + result.descr + "' src='/Images/" + result.message + "' />"; 
    $("#MessageContent").val($("#MessageContent").val() + t); 
    $("#MessageContent").focus(); 

    $("#backgroundPopup").fadeOut("fast"); 
    $("#popupContact").fadeOut("fast"); 
}); 

Vous pouvez également raccourcir un bit by passing a function to .val(), comme ceci:

$("#insert").live("click", function() { 
    $("#MessageContent").val(function(i, val) { 
    return val + "<img width='" + result.width + "' height='" + result.height + "' alt='" + result.descr + "' src='/Images/" + result.message + "' />"; 
    }).focus(); 
    $("#backgroundPopup").fadeOut("fast"); 
    $("#popupContact").fadeOut("fast"); 
}); 
Questions connexes