我正在使用以下JQuery代码。当我测试它时,期望值显示在范围中,但不显示在输入文本框中。
JQ
$(function() {
$("#textbox").each(function() {
var input = '#' + this.id;
counter(input);
$(this).keyup(function() {
counter(input);
});
});
});
function counter(field) {
var number = 0;
var text = $(field).val();
var word = $(field).val().split(/[ \n\r]/);
words = word.filter(function(word) {
return word.length > 0 && word.match(/^[A-Za-z0-9]/);
}).length;
$('.wordCount').text(words);
$('#sentencecount').text(words);
}
请参阅Fiddle。请让我知道我哪里出错了。 JS还是新手。
由于
答案 0 :(得分:3)
改变这个:
$('#sentencecount').text(words);
到此:
$('#sentencecount').val(words);
.text()方法不能用于表单输入或脚本。要设置或获取input或textarea元素的文本值,请使用.val()方法。要获取脚本元素的值,请使用.html()方法。 - > http://api.jquery.com/text/
答案 1 :(得分:1)
尝试使用val()
而不是这应该修复它。
答案 2 :(得分:0)
您无法将文本设置为必须使用值的输入 试试这个。
$('#sentencecount').text(words);
//has to be
$('#sentencecount').val(words);
我也更新了你的Jsfiddle
$(function() {
$("#textbox").each(function() {
var input = '#' + this.id;
counter(input);
$(this).keyup(function() {
counter(input);
});
});
});
function counter(field) {
var number = 0;
var text = $(field).val();
var word = $(field).val().split(/[ \n\r]/);
words = word.filter(function(word) {
return word.length > 0 && word.match(/^[A-Za-z0-9]/);
}).length;
$('.wordCount').text(words);
$('#sentencecount').val(words);
}