结果未显示在输入文本中

时间:2014-02-27 19:22:13

标签: javascript jquery

我正在使用以下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还是新手。

由于

3 个答案:

答案 0 :(得分:3)

改变这个:

$('#sentencecount').text(words);

到此:

$('#sentencecount').val(words);

.text()方法不能用于表单输入或脚本。要设置或获取input或textarea元素的文本值,请使用.val()方法。要获取脚本元素的值,请使用.html()方法。 - > http://api.jquery.com/text/

答案 1 :(得分:1)

尝试使用val()而不是这应该修复它。

http://jsfiddle.net/josephs8/6B9Ga/8/

答案 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);
}