Real time Word Count Possible

More
2 years 3 months ago #159046 by blocka
I know we have this great solution ( www.limesurvey.org/forum/can-i-do-this-w...acter-counter#155967 ) for real time number of characters left count...

Is there a way to accomplish this for a word count?

Please Log in or Create an account to join the conversation.

More
2 years 3 months ago #159051 by DenisChenu
Except with workaround with javascript, i don't see an Expression Manager way :/
stackoverflow.com/questions/14010446/wor...sing-jquery#14010497

EM regexMatch only return boolean, and we don't have any way to "explode" a string with EM.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
An error happen ? Before make a new topic : remind the Debug mode .

Please Log in or Create an account to join the conversation.

More
2 years 3 months ago #159095 by blocka
I was able to accomplish this with the script here:

jsfiddle.net/ezZxf/62/

and Denis Chenu's addScriptToQuestion (which just makes life easier):

extensions.sondages.pro/questions-updati...sily-add-javascript/

1. Put this HTML in your question Help field:
<div class="word-counter">Word Count: <label id="count-label513">0</label>/200</div>

Replace label513 with labelyourquestionID -- this allows you to support more than one textarea per page

(See Image Word1.png)

2. Under Advanced settings, using addScriptToQuestion plugin, add:
var limitWord = 200;
$("#answer268778X29X513").keyup(function () {
    $this = $(this);
    var regex = /\s+/gi;
    var wordcount = jQuery.trim($this.val()).replace(regex, ' ').split(' ').length;
    if (wordcount <= limitWord) {
        chars = $this.val().length;
    } else {
        var text = $(this).val();
        var new_text = text.substr(0, chars);
        $(this).val(new_text);
        wordcount --;
    }
    $("#count-label513").html(wordcount);
});

a) Set limitWord = 200 to your own word limit value
b) Replace answer268778X29X513 with the question ID (use your browser's Element Inspector to find this)
c) Replace label513 with the value you used in Step #1

(See Image Word2.png)

3. Under General Options for your question, in the Validation field, enter this reg-ex:

/^[-\w]+(?:\W+[-\w]+){0,200}\W*$/

Change 200 to your max number of words

(See Image Word3.png)

4. Save and preview your question

(See Image Word4.png)
Attachments:
The following user(s) said Thank You: cmnxyz

Please Log in or Create an account to join the conversation.

More
1 year 10 months ago #165173 by jltrussart11
Thanks for this wonderful workaround.

Could the number of words be dermined by the user on a previous question?

Please Log in or Create an account to join the conversation.

More
1 year 10 months ago #165176 by jltrussart11
Could we use regex to do it?

Please Log in or Create an account to join the conversation.

More
7 months 1 hour ago #185916 by cmnxyz
Hey there! since i dont have admin rights to install external plugins i have to use the workaround within the source code of the question. I followed the upper instruction and I put my questionID and the questionlabelID accordingly. However, when I enter text, its displaying: "Please check the format of your answer." Any clue what causes this problem? I'm using LimeSurvey 3.14. Kind regards
Attachments:

Please Log in or Create an account to join the conversation.

More
6 months 4 weeks ago - 6 months 4 weeks ago #185919 by Joffm
Replied by Joffm on topic Real time Word Count Possible
Hi, you have to surround blocka's script by

$(document).on('ready pjax:scriptcomplete',function(){
.....
});

This is the advantage of Denis' plugin - you don't need it; but without plugin, you have to use the full javascript.

Version 3.17.4+190529

But the format error seems to be something different. I never saw something like this when I tested. And I was not able to reproduce it.
So, you have to send us your *.lss with only this question.

Anyway, you should hide the tip. This tip "please, check the format..." is confusing, because it refers to the regular expression in your validation.

All the best
Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:
Last edit: 6 months 4 weeks ago by Joffm.

Please Log in or Create an account to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!