Articulate Storyline:设置反馈表单最低字数才可进入下一页
在Articulate Storyline中实现反馈表单最低字数验证
一、Storyline基础设置
- 给页面上的反馈文本输入框设置明确名称(比如
feedbackInput,在右侧属性面板「名称」栏修改,注意大小写) - 添加「下一页」按钮,初始状态设为禁用(在按钮属性里勾选「初始禁用」)
- 创建一个布尔类型变量
enableNextButton,初始值设为false
二、绑定JavaScript验证逻辑
给文本输入框添加触发事件:当文本改变时执行JavaScript,代码如下:
// 获取输入框的内容 var inputContent = player.GetVar("feedbackInput"); // 设置最低字数要求,可自行修改 var requiredMinLength = 20; // 过滤首尾空格后计算有效长度 var trimmedContent = inputContent.trim(); var validLength = trimmedContent.length; // 根据字数判断是否启用下一页按钮 if (validLength >= requiredMinLength) { player.SetVar("enableNextButton", true); } else { player.SetVar("enableNextButton", false); }
接着给「下一页」按钮添加触发条件:当变量enableNextButton变为true时,设置按钮为「启用」状态。
三、排查之前代码无效的常见原因
- 输入框名称不匹配:代码中
player.GetVar("xxx")的名称必须和输入框的命名完全一致,大小写敏感 - 变量绑定错误:未将
enableNextButton变量和按钮的启用触发正确关联 - 未处理空格:用户输入纯空格会被误判为有效内容,
trim()方法可以过滤这类无效输入 - 事件绑定错误:代码要绑定在「文本改变」事件上,而非页面加载或其他事件
四、额外优化(可选)
- 添加提示文本:创建一个文本框,设置为初始隐藏,通过触发事件控制:当
validLength < requiredMinLength时显示「请输入至少20字的反馈」,否则隐藏 - 适配中文计数:如果需要将中文汉字按单个字符统计(避免中英文长度差异),可修改字数计算逻辑:
var validLength = 0; var trimmedContent = inputContent.trim(); for (var i = 0; i < trimmedContent.length; i++) { // 中文Unicode范围:0x4E00-0x9FA5 if (trimmedContent.charCodeAt(i) >= 0x4E00 && trimmedContent.charCodeAt(i) <= 0x9FA5) { validLength += 1; } else { validLength += 1; } }
内容的提问来源于stack exchange,提问作者vizencox Mulicy
相关产品推荐
相关产品推荐

