jquery
  • asp.net-mvc
  • textarea
  • 2010-06-15 166 views 2 likes 
    2

    文本區域的樣子:JQuery。爲什麼我不能在textarea中插入html img標籤?

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

    JQuery的樣子:

    $("#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 
    

    我可以插入簡單的文本,但不能將任何HTML標記。

    回答

    3

    你想用.val()這裏,而不是.html()設置<textarea>的價值(否則該值沒有編碼,或正確使用),像這樣:

    $("#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"); 
    }); 
    

    您也可以縮短一bit by passing a function to .val(),like this:

    $("#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"); 
    }); 
    
    相關問題