﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 7  » Best way to retrieve the number of boxes participants can click in 10 seconds for subsequent use</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Sat, 27 Jun 2026 07:54:35 GMT</lastBuildDate><ttl>20</ttl><item><title>Best way to retrieve the number of boxes participants can click in 10 seconds for subsequent use</title><link>https://forums.millisecond.com/Topic40850.aspx</link><description>Hello,&lt;br/&gt;&lt;br/&gt;My main task involves clicking a predetermined number of boxes within a fixed time window of 10 seconds, on each trial. Because there are individual differences in clicking speed, and because we want to adjust for task difficulty based on such differences, before the main task, participants will be requested to click as many boxes as possible (in order) out of a total of 50 boxes that are displayed on a regular grid, under the same time constraint (10 s). They will perform that twice.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Because the task involves clicking boxes, my first thought was to use &amp;lt;checkboxes&amp;gt; as in the sample code below. However, I'm starting to realize that is probably not the best approach, since I guess there is no easy way to apply the time constraint and/or retrieve the number of boxes that were clicked... Or maybe there is???&lt;br/&gt;&lt;br/&gt;If this is a deadend, I would love to hear suggestions on how to best accomplish this!&lt;br/&gt;Any help would be greatly appreciated. Thank you very much in advance!&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;  &lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;//trials = [1=boxes_calibration_show; 2=calibration_surveypage1; 3=calibration_intermezzo; 4=calibration_surveypage2]&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;</description><pubDate>Thu, 19 Jun 2025 08:24:27 GMT</pubDate><dc:creator>EN</dc:creator></item><item><title>RE: Best way to retrieve the number of boxes participants can click in 10 seconds for subsequent use</title><link>https://forums.millisecond.com/Topic40893.aspx</link><description>&lt;blockquote data-id="40892" class="if-quote-wrapper" unselectable="on" data-guid="1750321378606" contenteditable="false" id="if_insertedNode_1750321377584"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40892" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40892" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40892" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/19/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40892"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40891" class="if-quote-wrapper" unselectable="on" data-guid="1750321378606" contenteditable="false" id="if_insertedNode_1750293302096"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40891" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40891" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40891" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/19/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40891"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40886" class="if-quote-wrapper" unselectable="on" data-guid="1750321378606" contenteditable="false" id="if_insertedNode_1750291484823"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40886" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40886" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40886" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40886"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40869" class="if-quote-wrapper" unselectable="on" data-guid="1750321378606" contenteditable="false" id="if_insertedNode_1750243567193"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40869" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40869" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40869" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40869"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40868" class="if-quote-wrapper" unselectable="on" data-guid="1750321378606" contenteditable="false" id="if_insertedNode_1750218719428"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40868" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40868" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40868" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40868"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40867" class="if-quote-wrapper" unselectable="on" data-guid="1750321378606" contenteditable="false" id="if_insertedNode_1750206769933"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40867" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40867" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40867" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40867"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40854" class="if-quote-wrapper" unselectable="on" data-guid="1750321378606" contenteditable="false" id="if_insertedNode_1750199961212"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40854" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40854" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40854" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40854"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40850" class="if-quote-wrapper" unselectable="on" data-guid="1750321378606" contenteditable="false" id="if_insertedNode_1750159647780"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40850" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40850" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40850" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40850"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello,&lt;br/&gt;&lt;br/&gt;My main task involves clicking a predetermined number of boxes within a fixed time window of 10 seconds, on each trial. Because there are individual differences in clicking speed, and because we want to adjust for task difficulty based on such differences, before the main task, participants will be requested to click as many boxes as possible (in order) out of a total of 50 boxes that are displayed on a regular grid, under the same time constraint (10 s). They will perform that twice.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Because the task involves clicking boxes, my first thought was to use &amp;lt;checkboxes&amp;gt; as in the sample code below. However, I'm starting to realize that is probably not the best approach, since I guess there is no easy way to apply the time constraint and/or retrieve the number of boxes that were clicked... Or maybe there is???&lt;br/&gt;&lt;br/&gt;If this is a deadend, I would love to hear suggestions on how to best accomplish this!&lt;br/&gt;Any help would be greatly appreciated. Thank you very much in advance!&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;  &lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;//trials = [1=boxes_calibration_show; 2=calibration_surveypage1; 3=calibration_intermezzo; 4=calibration_surveypage2]&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40850"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The /timeout attribute is available for surveyPage elements, so there's no problem to implement the time constraint. &lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;And checkboxes expose properties -- selectedCount -- to determine how many options have been checked. You can add these up as needed.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;}&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40854"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hello Dave,&lt;br/&gt;that does it, thank you very much!&lt;br/&gt;(as a side note for people potentially interested in using this code in the future, the file must be saved as an .iqjs file. I initially saved it as an .iqx but it didn't work on Inquisit 7.0.3 Mac OS version)&lt;br/&gt;EN&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40867"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;If you want or need IQX, then that's just a matter of replacing the curly braces with square brackets for the /onTrialEnd attribute.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = [&lt;br/&gt;    values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;]&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;a class="if-quote-goto quote-link" href="#" data-id="40868"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks, Dave!&lt;br/&gt;I wonder if there is any fundamental difference in terms of performance --or some other important functionality-- between IQX and IQJS?&lt;br/&gt;(I'm sticking for now with IQX to ensure backward compatibility with the Inquisit 6 Web License I have)&lt;br/&gt;Best,&lt;br/&gt;EN&lt;a class="if-quote-goto quote-link" href="#" data-id="40869"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;IQJS offers much expanded functionality. But since you only have an Inquisit 6 licenses, you need to stick with IQX, unless you plant to upgrade. If you stick with Inquisit 6, you should also post any questions going forward in the Inquisit 6 section of the forum.&lt;a class="if-quote-goto quote-link" href="#" data-id="40886"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks for letting me know -- and apologies for posting to the wrong section!!&lt;br/&gt;Best,&lt;br/&gt;EN&lt;a class="if-quote-goto quote-link" href="#" data-id="40891"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;No apoogies necessary. The reason I mentioned it is to avoid frustration as well as wasting time and effort. When you ask in the Inquisit 7 forum, you are going to get something that works under Inquisit 7. Sometimes that will happen to also work under Inquisit 6, but other times it won't. IQJS code is new to Inquisit 7 and will not work under Inquisit 6 at all. Depending on how complex it is, porting it to IQX can be a lot of work and the worst case is it won't be possible to port at all.&lt;br/&gt;&lt;br/&gt;So, if you know or strongly suspect you are going to need Inquisit 6 compatible code, please use the Inquisit 6 forum. Then everybody knows what you need and won't give you answers that may only apply to Inquisit 7, but not Inquisit 6.&lt;a class="if-quote-goto quote-link" href="#" data-id="40892"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Makes total sense, thanks!&lt;br/&gt;E</description><pubDate>Thu, 19 Jun 2025 08:24:27 GMT</pubDate><dc:creator>EN</dc:creator></item><item><title>RE: Best way to retrieve the number of boxes participants can click in 10 seconds for subsequent use</title><link>https://forums.millisecond.com/Topic40892.aspx</link><description>&lt;blockquote data-id="40891" class="if-quote-wrapper" unselectable="on" data-guid="1750293303643" contenteditable="false" id="if_insertedNode_1750293302096"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40891" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40891" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40891" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/19/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40891"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40886" class="if-quote-wrapper" unselectable="on" data-guid="1750293303643" contenteditable="false" id="if_insertedNode_1750291484823"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40886" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40886" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40886" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40886"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40869" class="if-quote-wrapper" unselectable="on" data-guid="1750293303643" contenteditable="false" id="if_insertedNode_1750243567193"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40869" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40869" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40869" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40869"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40868" class="if-quote-wrapper" unselectable="on" data-guid="1750293303643" contenteditable="false" id="if_insertedNode_1750218719428"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40868" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40868" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40868" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40868"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40867" class="if-quote-wrapper" unselectable="on" data-guid="1750293303643" contenteditable="false" id="if_insertedNode_1750206769933"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40867" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40867" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40867" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40867"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40854" class="if-quote-wrapper" unselectable="on" data-guid="1750293303643" contenteditable="false" id="if_insertedNode_1750199961212"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40854" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40854" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40854" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40854"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40850" class="if-quote-wrapper" unselectable="on" data-guid="1750293303643" contenteditable="false" id="if_insertedNode_1750159647780"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40850" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40850" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40850" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40850"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello,&lt;br/&gt;&lt;br/&gt;My main task involves clicking a predetermined number of boxes within a fixed time window of 10 seconds, on each trial. Because there are individual differences in clicking speed, and because we want to adjust for task difficulty based on such differences, before the main task, participants will be requested to click as many boxes as possible (in order) out of a total of 50 boxes that are displayed on a regular grid, under the same time constraint (10 s). They will perform that twice.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Because the task involves clicking boxes, my first thought was to use &amp;lt;checkboxes&amp;gt; as in the sample code below. However, I'm starting to realize that is probably not the best approach, since I guess there is no easy way to apply the time constraint and/or retrieve the number of boxes that were clicked... Or maybe there is???&lt;br/&gt;&lt;br/&gt;If this is a deadend, I would love to hear suggestions on how to best accomplish this!&lt;br/&gt;Any help would be greatly appreciated. Thank you very much in advance!&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;  &lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;//trials = [1=boxes_calibration_show; 2=calibration_surveypage1; 3=calibration_intermezzo; 4=calibration_surveypage2]&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40850"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The /timeout attribute is available for surveyPage elements, so there's no problem to implement the time constraint. &lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;And checkboxes expose properties -- selectedCount -- to determine how many options have been checked. You can add these up as needed.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;}&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40854"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hello Dave,&lt;br/&gt;that does it, thank you very much!&lt;br/&gt;(as a side note for people potentially interested in using this code in the future, the file must be saved as an .iqjs file. I initially saved it as an .iqx but it didn't work on Inquisit 7.0.3 Mac OS version)&lt;br/&gt;EN&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40867"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;If you want or need IQX, then that's just a matter of replacing the curly braces with square brackets for the /onTrialEnd attribute.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = [&lt;br/&gt;    values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;]&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;a class="if-quote-goto quote-link" href="#" data-id="40868"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks, Dave!&lt;br/&gt;I wonder if there is any fundamental difference in terms of performance --or some other important functionality-- between IQX and IQJS?&lt;br/&gt;(I'm sticking for now with IQX to ensure backward compatibility with the Inquisit 6 Web License I have)&lt;br/&gt;Best,&lt;br/&gt;EN&lt;a class="if-quote-goto quote-link" href="#" data-id="40869"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;IQJS offers much expanded functionality. But since you only have an Inquisit 6 licenses, you need to stick with IQX, unless you plant to upgrade. If you stick with Inquisit 6, you should also post any questions going forward in the Inquisit 6 section of the forum.&lt;a class="if-quote-goto quote-link" href="#" data-id="40886"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks for letting me know -- and apologies for posting to the wrong section!!&lt;br/&gt;Best,&lt;br/&gt;EN&lt;a class="if-quote-goto quote-link" href="#" data-id="40891"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;No apoogies necessary. The reason I mentioned it is to avoid frustration as well as wasting time and effort. When you ask in the Inquisit 7 forum, you are going to get something that works under Inquisit 7. Sometimes that will happen to also work under Inquisit 6, but other times it won't. IQJS code is new to Inquisit 7 and will not work under Inquisit 6 at all. Depending on how complex it is, porting it to IQX can be a lot of work and the worst case is it won't be possible to port at all.&lt;br/&gt;&lt;br/&gt;So, if you know or strongly suspect you are going to need Inquisit 6 compatible code, please use the Inquisit 6 forum. Then everybody knows what you need and won't give you answers that may only apply to Inquisit 7, but not Inquisit 6.</description><pubDate>Thu, 19 Jun 2025 00:42:00 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Best way to retrieve the number of boxes participants can click in 10 seconds for subsequent use</title><link>https://forums.millisecond.com/Topic40891.aspx</link><description>&lt;blockquote data-id="40886" class="if-quote-wrapper" unselectable="on" data-guid="1750291485569" contenteditable="false" id="if_insertedNode_1750291484823"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40886" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40886" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40886" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40886"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40869" class="if-quote-wrapper" unselectable="on" data-guid="1750291485569" contenteditable="false" id="if_insertedNode_1750243567193"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40869" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40869" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40869" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40869"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40868" class="if-quote-wrapper" unselectable="on" data-guid="1750291485569" contenteditable="false" id="if_insertedNode_1750218719428"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40868" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40868" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40868" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40868"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40867" class="if-quote-wrapper" unselectable="on" data-guid="1750291485569" contenteditable="false" id="if_insertedNode_1750206769933"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40867" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40867" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40867" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40867"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40854" class="if-quote-wrapper" unselectable="on" data-guid="1750291485569" contenteditable="false" id="if_insertedNode_1750199961212"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40854" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40854" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40854" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40854"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40850" class="if-quote-wrapper" unselectable="on" data-guid="1750291485569" contenteditable="false" id="if_insertedNode_1750159647780"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40850" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40850" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40850" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40850"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello,&lt;br/&gt;&lt;br/&gt;My main task involves clicking a predetermined number of boxes within a fixed time window of 10 seconds, on each trial. Because there are individual differences in clicking speed, and because we want to adjust for task difficulty based on such differences, before the main task, participants will be requested to click as many boxes as possible (in order) out of a total of 50 boxes that are displayed on a regular grid, under the same time constraint (10 s). They will perform that twice.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Because the task involves clicking boxes, my first thought was to use &amp;lt;checkboxes&amp;gt; as in the sample code below. However, I'm starting to realize that is probably not the best approach, since I guess there is no easy way to apply the time constraint and/or retrieve the number of boxes that were clicked... Or maybe there is???&lt;br/&gt;&lt;br/&gt;If this is a deadend, I would love to hear suggestions on how to best accomplish this!&lt;br/&gt;Any help would be greatly appreciated. Thank you very much in advance!&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;  &lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;//trials = [1=boxes_calibration_show; 2=calibration_surveypage1; 3=calibration_intermezzo; 4=calibration_surveypage2]&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40850"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The /timeout attribute is available for surveyPage elements, so there's no problem to implement the time constraint. &lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;And checkboxes expose properties -- selectedCount -- to determine how many options have been checked. You can add these up as needed.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;}&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40854"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hello Dave,&lt;br/&gt;that does it, thank you very much!&lt;br/&gt;(as a side note for people potentially interested in using this code in the future, the file must be saved as an .iqjs file. I initially saved it as an .iqx but it didn't work on Inquisit 7.0.3 Mac OS version)&lt;br/&gt;EN&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40867"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;If you want or need IQX, then that's just a matter of replacing the curly braces with square brackets for the /onTrialEnd attribute.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = [&lt;br/&gt;    values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;]&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;a class="if-quote-goto quote-link" href="#" data-id="40868"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks, Dave!&lt;br/&gt;I wonder if there is any fundamental difference in terms of performance --or some other important functionality-- between IQX and IQJS?&lt;br/&gt;(I'm sticking for now with IQX to ensure backward compatibility with the Inquisit 6 Web License I have)&lt;br/&gt;Best,&lt;br/&gt;EN&lt;a class="if-quote-goto quote-link" href="#" data-id="40869"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;IQJS offers much expanded functionality. But since you only have an Inquisit 6 licenses, you need to stick with IQX, unless you plant to upgrade. If you stick with Inquisit 6, you should also post any questions going forward in the Inquisit 6 section of the forum.&lt;a class="if-quote-goto quote-link" href="#" data-id="40886"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks for letting me know -- and apologies for posting to the wrong section!!&lt;br/&gt;Best,&lt;br/&gt;EN</description><pubDate>Thu, 19 Jun 2025 00:05:26 GMT</pubDate><dc:creator>EN</dc:creator></item><item><title>RE: Best way to retrieve the number of boxes participants can click in 10 seconds for subsequent use</title><link>https://forums.millisecond.com/Topic40886.aspx</link><description>&lt;blockquote data-id="40869" class="if-quote-wrapper" unselectable="on" data-guid="1750243568087" contenteditable="false" id="if_insertedNode_1750243567193"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40869" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40869" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40869" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40869"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40868" class="if-quote-wrapper" unselectable="on" data-guid="1750243568087" contenteditable="false" id="if_insertedNode_1750218719428"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40868" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40868" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40868" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40868"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40867" class="if-quote-wrapper" unselectable="on" data-guid="1750243568087" contenteditable="false" id="if_insertedNode_1750206769933"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40867" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40867" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40867" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40867"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40854" class="if-quote-wrapper" unselectable="on" data-guid="1750243568087" contenteditable="false" id="if_insertedNode_1750199961212"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40854" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40854" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40854" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40854"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40850" class="if-quote-wrapper" unselectable="on" data-guid="1750243568087" contenteditable="false" id="if_insertedNode_1750159647780"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40850" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40850" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40850" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40850"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello,&lt;br/&gt;&lt;br/&gt;My main task involves clicking a predetermined number of boxes within a fixed time window of 10 seconds, on each trial. Because there are individual differences in clicking speed, and because we want to adjust for task difficulty based on such differences, before the main task, participants will be requested to click as many boxes as possible (in order) out of a total of 50 boxes that are displayed on a regular grid, under the same time constraint (10 s). They will perform that twice.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Because the task involves clicking boxes, my first thought was to use &amp;lt;checkboxes&amp;gt; as in the sample code below. However, I'm starting to realize that is probably not the best approach, since I guess there is no easy way to apply the time constraint and/or retrieve the number of boxes that were clicked... Or maybe there is???&lt;br/&gt;&lt;br/&gt;If this is a deadend, I would love to hear suggestions on how to best accomplish this!&lt;br/&gt;Any help would be greatly appreciated. Thank you very much in advance!&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;  &lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;//trials = [1=boxes_calibration_show; 2=calibration_surveypage1; 3=calibration_intermezzo; 4=calibration_surveypage2]&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40850"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The /timeout attribute is available for surveyPage elements, so there's no problem to implement the time constraint. &lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;And checkboxes expose properties -- selectedCount -- to determine how many options have been checked. You can add these up as needed.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;}&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40854"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hello Dave,&lt;br/&gt;that does it, thank you very much!&lt;br/&gt;(as a side note for people potentially interested in using this code in the future, the file must be saved as an .iqjs file. I initially saved it as an .iqx but it didn't work on Inquisit 7.0.3 Mac OS version)&lt;br/&gt;EN&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40867"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;If you want or need IQX, then that's just a matter of replacing the curly braces with square brackets for the /onTrialEnd attribute.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = [&lt;br/&gt;    values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;]&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;a class="if-quote-goto quote-link" href="#" data-id="40868"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks, Dave!&lt;br/&gt;I wonder if there is any fundamental difference in terms of performance --or some other important functionality-- between IQX and IQJS?&lt;br/&gt;(I'm sticking for now with IQX to ensure backward compatibility with the Inquisit 6 Web License I have)&lt;br/&gt;Best,&lt;br/&gt;EN&lt;a class="if-quote-goto quote-link" href="#" data-id="40869"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;IQJS offers much expanded functionality. But since you only have an Inquisit 6 licenses, you need to stick with IQX, unless you plant to upgrade. If you stick with Inquisit 6, you should also post any questions going forward in the Inquisit 6 section of the forum.</description><pubDate>Wed, 18 Jun 2025 10:48:00 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Best way to retrieve the number of boxes participants can click in 10 seconds for subsequent use</title><link>https://forums.millisecond.com/Topic40869.aspx</link><description>&lt;blockquote data-id="40868" class="if-quote-wrapper" unselectable="on" data-guid="1750218720274" contenteditable="false" id="if_insertedNode_1750218719428"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40868" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40868" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40868" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/18/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40868"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40867" class="if-quote-wrapper" unselectable="on" data-guid="1750218720274" contenteditable="false" id="if_insertedNode_1750206769933"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40867" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40867" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40867" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40867"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40854" class="if-quote-wrapper" unselectable="on" data-guid="1750218720274" contenteditable="false" id="if_insertedNode_1750199961212"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40854" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40854" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40854" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40854"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40850" class="if-quote-wrapper" unselectable="on" data-guid="1750218720274" contenteditable="false" id="if_insertedNode_1750159647780"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40850" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40850" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40850" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40850"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello,&lt;br/&gt;&lt;br/&gt;My main task involves clicking a predetermined number of boxes within a fixed time window of 10 seconds, on each trial. Because there are individual differences in clicking speed, and because we want to adjust for task difficulty based on such differences, before the main task, participants will be requested to click as many boxes as possible (in order) out of a total of 50 boxes that are displayed on a regular grid, under the same time constraint (10 s). They will perform that twice.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Because the task involves clicking boxes, my first thought was to use &amp;lt;checkboxes&amp;gt; as in the sample code below. However, I'm starting to realize that is probably not the best approach, since I guess there is no easy way to apply the time constraint and/or retrieve the number of boxes that were clicked... Or maybe there is???&lt;br/&gt;&lt;br/&gt;If this is a deadend, I would love to hear suggestions on how to best accomplish this!&lt;br/&gt;Any help would be greatly appreciated. Thank you very much in advance!&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;  &lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;//trials = [1=boxes_calibration_show; 2=calibration_surveypage1; 3=calibration_intermezzo; 4=calibration_surveypage2]&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40850"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The /timeout attribute is available for surveyPage elements, so there's no problem to implement the time constraint. &lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;And checkboxes expose properties -- selectedCount -- to determine how many options have been checked. You can add these up as needed.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;}&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40854"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hello Dave,&lt;br/&gt;that does it, thank you very much!&lt;br/&gt;(as a side note for people potentially interested in using this code in the future, the file must be saved as an .iqjs file. I initially saved it as an .iqx but it didn't work on Inquisit 7.0.3 Mac OS version)&lt;br/&gt;EN&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40867"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;If you want or need IQX, then that's just a matter of replacing the curly braces with square brackets for the /onTrialEnd attribute.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = [&lt;br/&gt;    values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;]&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;a class="if-quote-goto quote-link" href="#" data-id="40868"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks, Dave!&lt;br/&gt;I wonder if there is any fundamental difference in terms of performance --or some other important functionality-- between IQX and IQJS?&lt;br/&gt;(I'm sticking for now with IQX to ensure backward compatibility with the Inquisit 6 Web License I have)&lt;br/&gt;Best,&lt;br/&gt;EN</description><pubDate>Wed, 18 Jun 2025 04:09:04 GMT</pubDate><dc:creator>EN</dc:creator></item><item><title>RE: Best way to retrieve the number of boxes participants can click in 10 seconds for subsequent use</title><link>https://forums.millisecond.com/Topic40868.aspx</link><description>&lt;blockquote data-id="40867" class="if-quote-wrapper" unselectable="on" data-guid="1750206771362" contenteditable="false" id="if_insertedNode_1750206769933"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40867" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40867" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40867" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40867"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40854" class="if-quote-wrapper" unselectable="on" data-guid="1750206771362" contenteditable="false" id="if_insertedNode_1750199961212"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40854" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40854" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40854" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40854"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40850" class="if-quote-wrapper" unselectable="on" data-guid="1750206771362" contenteditable="false" id="if_insertedNode_1750159647780"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40850" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40850" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40850" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40850"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello,&lt;br/&gt;&lt;br/&gt;My main task involves clicking a predetermined number of boxes within a fixed time window of 10 seconds, on each trial. Because there are individual differences in clicking speed, and because we want to adjust for task difficulty based on such differences, before the main task, participants will be requested to click as many boxes as possible (in order) out of a total of 50 boxes that are displayed on a regular grid, under the same time constraint (10 s). They will perform that twice.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Because the task involves clicking boxes, my first thought was to use &amp;lt;checkboxes&amp;gt; as in the sample code below. However, I'm starting to realize that is probably not the best approach, since I guess there is no easy way to apply the time constraint and/or retrieve the number of boxes that were clicked... Or maybe there is???&lt;br/&gt;&lt;br/&gt;If this is a deadend, I would love to hear suggestions on how to best accomplish this!&lt;br/&gt;Any help would be greatly appreciated. Thank you very much in advance!&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;  &lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;//trials = [1=boxes_calibration_show; 2=calibration_surveypage1; 3=calibration_intermezzo; 4=calibration_surveypage2]&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40850"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The /timeout attribute is available for surveyPage elements, so there's no problem to implement the time constraint. &lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;And checkboxes expose properties -- selectedCount -- to determine how many options have been checked. You can add these up as needed.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;}&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40854"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hello Dave,&lt;br/&gt;that does it, thank you very much!&lt;br/&gt;(as a side note for people potentially interested in using this code in the future, the file must be saved as an .iqjs file. I initially saved it as an .iqx but it didn't work on Inquisit 7.0.3 Mac OS version)&lt;br/&gt;EN&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40867"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;If you want or need IQX, then that's just a matter of replacing the curly braces with square brackets for the /onTrialEnd attribute.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = [&lt;br/&gt;    values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;]&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]</description><pubDate>Wed, 18 Jun 2025 00:34:15 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Best way to retrieve the number of boxes participants can click in 10 seconds for subsequent use</title><link>https://forums.millisecond.com/Topic40867.aspx</link><description>&lt;blockquote data-id="40854" class="if-quote-wrapper" unselectable="on" data-guid="1750199961971" contenteditable="false" id="if_insertedNode_1750199961212"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40854" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40854" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40854" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40854"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="40850" class="if-quote-wrapper" unselectable="on" data-guid="1750199961971" contenteditable="false" id="if_insertedNode_1750159647780"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40850" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40850" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40850" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40850"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello,&lt;br/&gt;&lt;br/&gt;My main task involves clicking a predetermined number of boxes within a fixed time window of 10 seconds, on each trial. Because there are individual differences in clicking speed, and because we want to adjust for task difficulty based on such differences, before the main task, participants will be requested to click as many boxes as possible (in order) out of a total of 50 boxes that are displayed on a regular grid, under the same time constraint (10 s). They will perform that twice.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Because the task involves clicking boxes, my first thought was to use &amp;lt;checkboxes&amp;gt; as in the sample code below. However, I'm starting to realize that is probably not the best approach, since I guess there is no easy way to apply the time constraint and/or retrieve the number of boxes that were clicked... Or maybe there is???&lt;br/&gt;&lt;br/&gt;If this is a deadend, I would love to hear suggestions on how to best accomplish this!&lt;br/&gt;Any help would be greatly appreciated. Thank you very much in advance!&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;  &lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;//trials = [1=boxes_calibration_show; 2=calibration_surveypage1; 3=calibration_intermezzo; 4=calibration_surveypage2]&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40850"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The /timeout attribute is available for surveyPage elements, so there's no problem to implement the time constraint. &lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;And checkboxes expose properties -- selectedCount -- to determine how many options have been checked. You can add these up as needed.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;}&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40854"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hello Dave,&lt;br/&gt;that does it, thank you very much!&lt;br/&gt;(as a side note for people potentially interested in using this code in the future, the file must be saved as an .iqjs file. I initially saved it as an .iqx but it didn't work on Inquisit 7.0.3 Mac OS version)&lt;br/&gt;EN&lt;br/&gt;</description><pubDate>Tue, 17 Jun 2025 23:47:53 GMT</pubDate><dc:creator>EN</dc:creator></item><item><title>RE: Best way to retrieve the number of boxes participants can click in 10 seconds for subsequent use</title><link>https://forums.millisecond.com/Topic40854.aspx</link><description>&lt;blockquote data-id="40850" class="if-quote-wrapper" unselectable="on" data-guid="1750159648619" contenteditable="false" id="if_insertedNode_1750159647780"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="40850" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="40850" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="40850" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;EN - 6/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-40850"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello,&lt;br/&gt;&lt;br/&gt;My main task involves clicking a predetermined number of boxes within a fixed time window of 10 seconds, on each trial. Because there are individual differences in clicking speed, and because we want to adjust for task difficulty based on such differences, before the main task, participants will be requested to click as many boxes as possible (in order) out of a total of 50 boxes that are displayed on a regular grid, under the same time constraint (10 s). They will perform that twice.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Because the task involves clicking boxes, my first thought was to use &amp;lt;checkboxes&amp;gt; as in the sample code below. However, I'm starting to realize that is probably not the best approach, since I guess there is no easy way to apply the time constraint and/or retrieve the number of boxes that were clicked... Or maybe there is???&lt;br/&gt;&lt;br/&gt;If this is a deadend, I would love to hear suggestions on how to best accomplish this!&lt;br/&gt;Any help would be greatly appreciated. Thank you very much in advance!&lt;br/&gt;&lt;br/&gt;EN&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;  &lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;//trials = [1=boxes_calibration_show; 2=calibration_surveypage1; 3=calibration_intermezzo; 4=calibration_surveypage2]&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="40850"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The /timeout attribute is available for surveyPage elements, so there's no problem to implement the time constraint. &lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm"&gt;https://www.millisecond.com/support/docs/current/html/language/attributes/timeout.htm&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;And checkboxes expose properties -- selectedCount -- to determine how many options have been checked. You can add these up as needed.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ boxesChecked = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;surveypage calibration_surveypage1&amp;gt;&lt;br/&gt;/ onTrialEnd = {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.boxesChecked = checkboxes.row1.selectedCount + checkboxes.row2.selectedCount + checkboxes.row3.selectedCount + checkboxes.row4.selectedCount + checkboxes.row5.selectedCount;&lt;br/&gt;}&lt;br/&gt;/caption = "GO!"&lt;br/&gt;/questions = [1-5=sequence(row1, row2, row3, row4, row5)]&lt;br/&gt;/ itemfontstyle = ("Arial", 2.00%, false, false, false, false, 5, 1)&lt;br/&gt;/ itemspacing = 0.0%&lt;br/&gt;/ showpagenumbers = false&lt;br/&gt;/ showbackbutton = false&lt;br/&gt;/ showquestionnumbers = false&lt;br/&gt;/ responsefontstyle = ("Arial", 2.0%, false, false, false, false, 5, 1)&lt;br/&gt;/ timeout = 10000 // 10 seconds&lt;br/&gt;&amp;lt;/surveypage&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row1&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")&lt;br/&gt;/ optionvalues = ("1", "2", "3", "4","5", "6", "7", "8", "9", "10")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row2&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("11", "12", "13", "14", "15", "16", "17", "18", "19", "20")&lt;br/&gt;/ optionvalues = ("11", "12", "13", "14","15", "16", "17", "18", "19", "20")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row3&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("21", "22", "23", "24", "25", "26", "27", "28", "29", "30")&lt;br/&gt;/ optionvalues = ("21", "22", "23", "24","25", "26", "27", "28", "29", "30")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row4&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("31", "32", "33", "34", "35", "36", "37", "38", "39", "40")&lt;br/&gt;/ optionvalues = ("31", "32", "33", "34","35", "36", "37", "38", "39", "40")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;checkboxes row5&amp;gt;&lt;br/&gt;/ caption=" "&lt;br/&gt;/ options=("41", "42", "43", "44", "45", "46", "47", "48", "49", "50")&lt;br/&gt;/ optionvalues = ("41", "42", "43", "44","45", "46", "47", "48", "49", "50")&lt;br/&gt;/ required = true&lt;br/&gt;/ orientation = horizontalequal&lt;br/&gt;&amp;lt;/checkboxes&amp;gt;&lt;br/&gt;&lt;br/&gt;//&lt;br/&gt;&amp;lt;text boxes_calibration_intro&amp;gt;&lt;br/&gt;/items = ("&amp;lt;center&amp;gt;Click as many boxes as possible in 10 seconds (in the correct order).&amp;lt;br&amp;gt;This task will be shown 2 times.&amp;lt;br&amp;gt;When you are ready to start, press &amp;lt;b&amp;gt;[space]&amp;lt;/b&amp;gt;.&amp;lt;/center&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial boxes_calibration_show&amp;gt;&lt;br/&gt;/stimulusFrames = [1=boxes_calibration_intro]&lt;br/&gt;/inputdevice = keyboard&lt;br/&gt;/validresponse = (" ")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block boxes_calibration_block&amp;gt;&lt;br/&gt;/ postInstructions = (end)&lt;br/&gt;/trials = [1=boxes_calibration_show; 2=calibration_surveypage1]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&lt;br/&gt;^&amp;lt;%values.boxesChecked%&amp;gt; boxes selected in 10 seconds.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;</description><pubDate>Tue, 17 Jun 2025 12:21:30 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>