我有一个textarea。当textarea中的值被输入更改为通过另一个jQuery函数或粘贴在其中时,我需要更新div中的文本即可。
$(document).ready(function(){
function myFunc() {
var input = $("#myTxt").val();
$("#txtHere").text(input);
}
myFunc();
// EDIT BELOW -- this will update while typing
$("#myTxt").keyup(myFunc);
});
<textarea id="myTxt"></textarea>
<div id="txtHere"></div>
它会加载页面加载的值,但我不确定在textarea中检查值是什么...
答案 0 :(得分:25)
$(document).ready(function(){
function myFunc(){
var input = $("#myTxt").val();
$("#txtHere").text(input);
}
myFunc();
//either this
$('#myTxt').keyup(function(){
$('#txtHere').html($(this).val());
});
//or this
$('#myTxt').keyup(function(){
myFunc();
});
//and this for good measure
$('#myTxt').change(function(){
myFunc(); //or direct assignment $('#txtHere').html($(this).val());
});
});
答案 1 :(得分:13)
对于textarea,仅当textarea失去焦点时才会调用.change函数。
我在此链接找到了我的解决方案:How can I bind to the change event of a textarea in jQuery?
$('#textareaID').bind('input propertychange', function() {
$("#yourBtnID").hide();
if(this.value.length){
$("#yourBtnID").show();
}
});
这对我来说非常合适。它处理任何类型的更改,包括粘贴。
Plus this.value.length
是查看textarea是否已被清除的简洁方法。
干杯!
答案 2 :(得分:2)
$(document).ready(function(){
$('#myTxt').keypress(function(e){
$('#txthere').html($(this).val());
});
});
这样就可以了。
答案 3 :(得分:1)
您可以使用delegate
这样的事件:
$('body').delegate('#myTxt', 'keyup change', function(){
$('#txtHere').text(this.value);
});
只要您在文本框中输入或粘贴,就应该更新文本。
答案 4 :(得分:0)
使用更改事件处理程序(将在内容更改且textarea失去焦点时激活):
$('#myTxt').change(function(){
var input = $("#myTxt").val();
$("#txtHere").text(input );
});
答案 5 :(得分:0)
$(document).delegate('#myTextareaId','input', function() {
$('#myTextId').html($(this).val());
});
答案 6 :(得分:0)
问题是 JQuery,它仅仅是FYI。
let myTxt = document.getElementById('myTxt');
let txtHere = document.getElementById('txtHere');
myTxt.addEventListener('input', function() {
txtHere.innerHTML = myTxt.value;
});
<textarea id="myTxt"></textarea>
<div id="txtHere"></div>