2013-11-15 47 views
0

我有textarea,在textarea中輸入的值應顯示在文本框中。這是我在textarea上使用「keypress」事件完成的。這工作正常。 現在,當我嘗試通過單擊div(某些文本內容)填充textarea時,這不起作用。在textarea上「按鍵」後,無法使用onclick事件填充值

但在「按鍵」事件之前,我能夠成功填寫textarea。

HTML:

<div id="dvfilltextarea" style="cursor: pointer;">Click here and check</div> 
<br/> 
<input type="text" name="txtvalue" id="txtDisplayMessage"> 
<br/> 
<textarea id="txtMessage" rows="5" cols="20"></textarea> 

的JavaScript:

$(document).ready(function() { 
$("#txtMessage").bind("keypress", function (e) { 
    if (e.which == 13) { 
     $("#txtDisplayMessage").val($("#txtMessage").val()); 
     $("#txtMessage").val(""); 
    } 
}); 

$("#dvfilltextarea").click(function() { 
    $("#txtMessage").html("div clicked"); 
});}); 

鏈接:http://jsfiddle.net/6VkfD/1/

無法理解這裏發生了什麼。

謝謝!

回答

1

你需要設置一些文本的文本區域的價值。所以用.val()這樣做。 .html()不設置textarea的值。它可以在DIV被應用,P等標籤,而輸入elements.So的HTML試試這個,

$("#txtMessage").val("div clicked"); 
0

變化VAL

$(document).ready(function() { 

$("#txtMessage").bind("keypress", function (e) { 
    if (e.which == 13) { 
     $("#txtDisplayMessage").val($("#txtMessage").val()); 
     $("#txtMessage").val(""); 
    } 
}); 

$("#dvfilltextarea").click(function() { 
    $("#txtMessage").val("div clicked"); 
}); 
}); 
0

試試這個,它適用於所有事件,經測試,P

function update(){ 
    $("#txtDisplayMessage").val($("#txtMessage").val()); 
    }; 
    $('#txtMessage').keydown(function(e) { 
    update(); 
    }).focusout(function(){ 
    update(); 
    }).bind('input propertychange', function() { 
    update(); 
    }); 
相關問題