的jsfiddle http://jsfiddle.net/m3g6rjok/1/
HTML
<textarea id="feedback" rows="4" cols="50" name="comment" maxlength="50">Enter text here...</textarea>
<br>
<input type="text" value="10" id="lenbox"></input>
JS
$(document).ready(function(){
$( "#feedback" )
.keyup(function() {
var value = $( this ).val();
alert(value)
$( "#lenbox" ).val( value );
})
.keyup();
})
我需要计算在textarea上输入的单词数量,并且需要在下面的文本框中显示它。我正在使用keyup事件进行检查,但即使在页面加载时它也会被触发。我该如何解决呢?
答案 0 :(得分:4)
从代码中删除.keyup();
。这会在页面加载时触发keyup事件。
答案 1 :(得分:4)
引发keyup
事件是因为您触发了一个事件。在处理程序函数声明后删除.keyup()
:
$("#feedback").keyup(function() {
var value = $(this).val();
alert(value)
$("#lenbox").val(value);
})
答案 2 :(得分:1)
因为你在JQuery语句的末尾有.keyup();
只需删除它
答案 3 :(得分:0)
您不应再次触发keyUp。此外,您应该移动更新keyUp函数之外的值的代码,这样您也可以在页面加载时触发代码。在你完成之后,它只是取一个字符串,分隔空格并计算单词:
var calculateCount = function() {
var value = $('#feedback').val();
var count = value.split(" ").length;
$( "#lenbox" ).val( count );
};
$(document).ready(function(){
$("#feedback").keyup(calculateCount);
calculateCount();
})
答案 4 :(得分:0)
首先,按照已经指出的方式删除.keyup()
然后,使用input
代替keyup
,以便我也能抓住粘贴的文字。
最后,使用split
方法和length
属性计算单词数。
$(document).ready(function(){
$( "#feedback" ).on('input',function() {
$( "#lenbox" ).val( this.value.split(' ').length );
});
});
答案 5 :(得分:-1)
如果您不介意使用HTML5,请使用占位符属性
<textarea id="feedback" rows="4" cols="50" name="comment" maxlength="50" placeholder="Enter text here..."></textarea>