我有textarea,在textarea中输入的值应显示在文本框中。我在textarea上使用了“keypress”事件。这很好用。 现在,当我尝试通过单击div(某些文本内容)填充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/
无法理解这里发生的事情。
谢谢!
答案 0 :(得分:1)
您需要使用val
http://api.jquery.com/val/
$("#dvfilltextarea").click(function() {
$("#txtMessage").val("div clicked");
});
答案 1 :(得分:1)
您需要使用一些文本设置文本区域的值。因此,请使用.val()来执行此操作。 .html()未设置textarea的值。它可以应用于div,p等标签而不是输入元素。所以试试这个,
$("#txtMessage").val("div clicked");
答案 2 :(得分:0)
将html更改为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");
});
});
答案 3 :(得分:0)
试试这个,它适用于所有事件,经过测试; p
function update(){
$("#txtDisplayMessage").val($("#txtMessage").val());
};
$('#txtMessage').keydown(function(e) {
update();
}).focusout(function(){
update();
}).bind('input propertychange', function() {
update();
});