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

Limesurvey autocomplete to disallow entry free text and show alert message

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

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

  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('');
            }
        }
    });
});