Я реализую функцию автозаполнения в опросе Qualtrics. Когда пользователь вводит текст в текстовое поле, появляется список элементов, содержащих введенный пользователем текст. Пользователь может выбрать заполнение текстового поля элементом из этого списка.
Однако, когда я выбираю из списка, введенный текст появляется в данных ответа вместо выбора. Например, я набираю «А» и выбираю «Apple». «Apple» появляется в текстовом поле опроса, но в данных записывается «A». Если вы продолжаете редактировать введенный текст, все, что отображается в текстовом поле, записывается в данные. Однако я не ожидаю, что респонденты опроса будут редактировать текст после того, как они выбрали свой ответ. Это проблема в Internet Explorer и Chrome. «Apple» появляется в данных, когда я отвечаю на опрос с помощью Firefox.
Я использовал решение из предыдущего вопроса: Unsolved — добавление автозаполнения с помощью Javascript в Qualtrics, но появляется та же проблема (наряду с другими проблемами).
Это код, который я использую в Look and Feel, Advanced:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/smoothness/jquery-ui.css" rel="stylesheet" /><script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script><script>
var qtrix = new Object();
qtrix.$ = jQuery.noConflict();
qtrix.helloWorld = function() {
alert("Hello world!");
};
qtrix.autoCompleteList = [ ];
function qtrixSetAutoCompleteList(list) {
qtrixAutoCompleteList = list;
}
qtrix.accentMap = {
"á": "a",
"à": "a",
"ä": "a",
"é": "e",
"è": "e",
"ë": "e",
"í": "i",
"ì": "i",
"ï": "i",
"ó": "o",
"ò": "o",
"ö": "o",
"ú": "u",
"ù": "u",
"ü": "u"
};
qtrix.articles = [
"the",
"le",
"l'",
"la",
"die",
"das",
"der"
];
qtrix.stripAccents = function(term) {
var ret = "";
for (var i = 0; i < term.length; i++) {
ret += qtrix.accentMap[term.charAt(i)] || term.charAt(i);
}
return ret;
};
qtrix.cleanTerm = function(term) {
term = term.toLowerCase();
for (var i = 0; i < qtrix.articles.length; i++) {
if (term.substring(0, qtrix.articles[i].length) == qtrix.articles[i]) {
return term.substring(qtrix.articles[i].length, term.length)
.trim();
}
}
return term;
};
qtrix.addAutoComplete = function(id, list) {
qtrix.$(id).autocomplete({
source: function(request, response) {
request.term = qtrix.cleanTerm(request.term);
var matcher =
new RegExp(qtrix.$.ui.autocomplete.escapeRegex(request.term),
"i");
response(qtrix.$.grep(list, function(value) {
value = value.label || value.value || value;
return matcher.test(value) ||
matcher.test(qtrix.stripAccents(value));
}));
}
});
};
</script>
Это код в поле javascript вопроса:
Qualtrics.SurveyEngine.addOnload(function()
{
qtrix.addAutoComplete("#QR\\~QID6", [
"Item 1",
"Item 2",
"Item 3",
"Item 3000"
]);
});
Я не знаком с Javascript и довольно плохо знаком с этим уровнем настройки в Qualtrics. Я был бы признателен за любое руководство или руководство. Благодарю вас!