Limesurvey 自动完成以禁止输入自由文本并显示警报消息

问题描述

我有一个简短的自由文本问题,希望参与者从下拉列表中选择一个答案。但问题是,可能有些人将自由文本或其他文本放在列表中。

那么,有什么解决办法吗..

  1. 可以提交不允许的自由文本或不在列表中的答案。 (但仍然可以输入)
  2. 显示类似“不匹配的答案

以下是我现在使用的。

    $(document).ready(function() {
        $('#question{QID} input[type="text"]').autocomplete({
            minLength: 2,source: ["Wayne Rooney","Ryan Giggs","David Beckham","Christiano Ronaldo","Adison Cavani"]
        });
    });

我认为这只是超级简单的自动完成,因为我对这些类型的东西(编码)知之甚少。所以,如果你能保持简单,那就太酷了。我确实在谷歌上搜索了一些,但根本不起作用,也许是因为我不明白。

在此先感谢您的帮助。

贾斯汀

解决方法

您可以使用自动完成“更改”事件 - https://api.jqueryui.com/autocomplete/#event-change

$(document).ready(function() {
    $('#question{QID} input[type="text"]').autocomplete({
        minLength: 2,source: ["Wayne Rooney","Ryan Giggs","David Beckham","Christiano Ronaldo","Adison Cavani"],change: function( event,ui ) {
            if (!ui.item) {
                alert('Invalid answer');
                $('#question{QID} input[type="text"]').val('');
            }
        }
    });
});

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...