Chelseawillrecover
Chelseawillrecover

Reputation: 2644

Result not showing in Input text

I have the following JQuery code I am working on. When I test it, the expected values are shown in the span but not in the input text box.

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

Please see Fiddle. Please let me know where I have gone wrong. Still new to JS.

Thanks

Upvotes: 0

Views: 60

Answers (3)

Genus
Genus

Reputation: 284

You can not set text to an input you must use value try this.

$('#sentencecount').text(words);
//has to be
$('#sentencecount').val(words);

and i have also updated your 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);
}

Upvotes: 0

atrljoe
atrljoe

Reputation: 8151

Trying using val() instead This should fix it up.

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

Upvotes: 1

sinisake
sinisake

Reputation: 11328

Change this:

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

to this:

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

The .text() method cannot be used on form inputs or scripts. To set or get the text value of input or textarea elements, use the .val() method. To get the value of a script element, use the .html() method. -> http://api.jquery.com/text/

Upvotes: 3

Related Questions