Auto-suggest text field

More
6 years 3 weeks ago #67872 by waitz
waitz created the topic: Auto-suggest text field
I have seen it somewhere in the forum, but I cannot find it.... :S

I had a script I could use in a sub-text field in a multiple short text question, that suggests answers based on what I start typing in the text field... The answers came from a list in the script of course.

I cannot find this back in the forum. Do you have an idea of a script like this?

Version 1.91+ Build 11232 | PHP 5.3.9 | MySQL 5.1.56 |

Please Log in to join the conversation.

More
6 years 3 weeks ago #67885 by tpartner
tpartner replied the topic: Auto-suggest text field

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

Please Log in to join the conversation.

More
6 years 3 weeks ago #67893 by Mazi
Mazi replied the topic: Auto-suggest text field
Rajan, once you have added all these nice workarounds, can you create a copy of that survey so we can have a look at a life version?


Best regards/Beste Grüße,
Dr. Marcel Minke
(Limesurvey Head of Support)
Need Help? We offer professional Limesurvey support
Contact: marcel.minke(at)survey-consulting.com'"

Please Log in to join the conversation.

More
6 years 3 weeks ago #67895 by waitz
waitz replied the topic: Auto-suggest text field
Sure :-) It is becoming quite advanced, nice for the user, and not so difficult to administer.

Version 1.91+ Build 11232 | PHP 5.3.9 | MySQL 5.1.56 |

Please Log in to join the conversation.

More
6 years 3 weeks ago #67901 by waitz
waitz replied the topic: Auto-suggest text field

tpartner wrote: docs.limesurvey.org/Workarounds%3A+Manip...y#and_later_versions

Hmmm... The text field I want to use this for is one of 5 subquestions in multiple short text.
<script type="text/javascript" charset="utf-8">
 
    $(document).ready(function() {
 
        var q1ID = #answer68164X61X1025FAM06;
 
        var states = "Alabama,Alaska,Arizona,Arkansas,California,Colorado,Connecticut,Delaware,
		District of Columbia,Florida,Georgia,Hawaii,Idaho,Illinois,Indiana,Iowa,Kansas,Kentucky,
		Louisiana,Maine,Montana,Nebraska,Nevada,New Hampshire,New Jersey,New Mexico,New York,
		North Carolina,North Dakota,Ohio,Oklahoma,Oregon,Maryland,Massachusetts,Michigan,
		Minnesota,Mississippi,Missouri,Pennsylvania,Rhode Island,South Carolina,South Dakota,
		Tennessee,Texas,Utah,Vermont,Virginia,Washington,West Virginia,Wisconsin,Wyoming".split(',');
 
        $('#question'+q1ID+' input.text').autocomplete({
			source: states		
		});
 
    });
</script>
I tried to put it in the code of the main question and in the code of the subquestion. Where does it actually go, and why won't it work... :huh:

Version 1.91+ Build 11232 | PHP 5.3.9 | MySQL 5.1.56 |

Please Log in to join the conversation.

More
6 years 3 weeks ago #67903 by tpartner
tpartner replied the topic: Auto-suggest text field
You can place the script in the source of any question or subquestion. It just need to be present in the page.

To target a specific sub-question field, use something like this:
<script type="text/javascript" charset="utf-8">
 
    $(document).ready(function() {
 
        var states = "Alabama,Alaska,Arizona,Arkansas,California,Colorado,Connecticut,Delaware,
		District of Columbia,Florida,Georgia,Hawaii,Idaho,Illinois,Indiana,Iowa,Kansas,Kentucky,
		Louisiana,Maine,Montana,Nebraska,Nevada,New Hampshire,New Jersey,New Mexico,New York,
		North Carolina,North Dakota,Ohio,Oklahoma,Oregon,Maryland,Massachusetts,Michigan,
		Minnesota,Mississippi,Missouri,Pennsylvania,Rhode Island,South Carolina,South Dakota,
		Tennessee,Texas,Utah,Vermont,Virginia,Washington,West Virginia,Wisconsin,Wyoming".split(',');
 
        $('#answer68164X61X1025FAM06').autocomplete({
			source: states		
		});
 
    });
</script>

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

Please Log in to join the conversation.

More
6 years 3 weeks ago #67905 by tpartner
tpartner replied the topic: Auto-suggest text field

Sure It is becoming quite advanced, nice for the user, and not so difficult to administer.


Soon the survey will complete itself :laugh:

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

Please Log in to join the conversation.

More
6 years 3 weeks ago #67918 by waitz
waitz replied the topic: Auto-suggest text field

tpartner wrote: Soon the survey will complete itself :laugh:

Interesting thought :P

Version 1.91+ Build 11232 | PHP 5.3.9 | MySQL 5.1.56 |

Please Log in to join the conversation.

More
6 years 2 weeks ago - 6 years 2 weeks ago #68106 by waitz
waitz replied the topic: Auto-suggest text field
The script is working, but it is not mandatory that I choose one of the suggested words.
Is it possible to make this mandatory?

Version 1.91+ Build 11232 | PHP 5.3.9 | MySQL 5.1.56 |
Last Edit: 6 years 2 weeks ago by waitz.

Please Log in to join the conversation.

More
6 years 2 weeks ago #68112 by tpartner
tpartner replied the topic: Auto-suggest text field
This code will apply the autocomplete plugin to an input and if a value is entered that is not in the data array an alert will be shown and the input will be set to null.
<script type="text/javascript" charset="utf-8">
 
	$(document).ready(function() {
 
		var states = "Alabama,Alaska,Arizona,Arkansas,California,Colorado,Connecticut,Delaware,District of Columbia,Florida,Georgia,Hawaii,Idaho,Illinois,Indiana,Iowa,Kansas,Kentucky,Louisiana,Maine,Montana,Nebraska,Nevada,New Hampshire,New Jersey,New Mexico,New York,North Carolina,North Dakota,Ohio,Oklahoma,Oregon,Maryland,Massachusetts,Michigan,Minnesota,Mississippi,Missouri,Pennsylvania,Rhode Island,South Carolina,South Dakota,Tennessee,Texas,Utah,Vermont,Virginia,Washington,West Virginia,Wisconsin,Wyoming".split(',');
 
		var msg = 'You must select a value from the list.';
 
		mandatoryAutocomplete('#answer68164X61X1025FAM06', states);
 
		function mandatoryAutocomplete(inputID, data) {
 
			$(inputID).autocomplete({
				source: data		
			});
			$(inputID).change(function(){
			//$('#answer68164X61X1025FAM06').change(function(){
				var okay = 0;
				$(states).each(function(){
					if($(inputID).val() == this) {
						okay = 1;
					}
				});
				if(okay < 1) {
					alert (msg);
					$(inputID).val('');
				}
			});
		} 
 
	});
</script>

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

Please Log in to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!