Как получить ввод пользователя через текстовое поле, когда кто-то набирает определенное предложение? - PullRequest
0 голосов
/ 17 апреля 2019

Итак, я поместил текстовое поле, которое должно принимать команды от пользователя, вроде виртуального помощника. Когда пользователь вводит «Меня зовут (введите имя здесь)», я хочу, чтобы переменная userName получала то, что написано после «Мое имя ...». Я искал решения в Интернете, но бесполезно ... Он продолжает насторожить меня "ИДК".

var userName = "";
var userResponse = document.getElementById("virtual_assistant_body_form_input");
var userResponseField = document.getElementById("virtual_assistant_body_form_input_text_message_field").value; // Selects the field element from the form element.
userResponse.onsubmit = function() { 
    if (userResponseField.includes('My name is') === true) {
        var userName = userResponseField.substr(9, 999);
        alert(userName);
    }
    else {
        alert("idk");
    }
};

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Основная причина заключается в том, что вы захватываете входное значение перед отправкой, поэтому значение, сохраненное в переменной тура userResponseField, не является актуальным, оно не содержит имени.

Кодниже можно улучшить, но я в автобусе, позвольте мне знать, если это решит вашу проблему.

let userName = '';
const inputText = 'My name is ';
const userResponse = document.getElementById('virtual_assistant_body_form_input');
function getUserResponseField() {
    return document.getElementById('virtual_assistant_body_form_input_text_message_field').value;;
}
userResponse.onsubmit = function() {
    const responseField = getUserResponseField(); // Grabbing the name at this stage, not before
    if (responseField.includes(inputText)) {
        userName = responseField.replace(inputText, '');
        alert(userName);
    }
    else {
        alert('idk');
    }
};
0 голосов
/ 17 апреля 2019

Полагаю, вы сначала прочитали пустое поле формы и сохранили его значение вместо получения текущего значения при отправке. Итак, переместите это так:

var userName = "";
var userResponse = document.getElementById("virtual_assistant_body_form_input");
userResponse.onsubmit = function() { 
    var userResponseField = document.getElementById("virtual_assistant_body_form_input_text_message_field").value; // Selects the field element from the form element.
    if (userResponseField.includes('My name is') === true) {
        var userName = userResponseField.substr(9, 999);
        alert(userName);
    }
    else {
        alert("idk");
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...