繁体   English   中英

当有人输入某个句子时,如何通过文本字段获取用户的输入?

[英]How to take the user's input through a text field when somebody types a certain sentence?

所以,我放了一个应该从用户那里获取命令的文本字段,有点像虚拟助手。 当用户输入“我的名字是(在这里插入一个名字)”时,我希望变量userName得到“我的名字是......”之后的内容。我已经通过互联网查找解决方案,但没有用...它一直警告我“idk”。

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");
    }
};

我猜你先读取空表单字段并存储其值,而不是在提交时获取当前值。 所以像这样移动它:

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");
    }
};

主要原因是您在提交之前抓取输入值,因此存储在tour变量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');
    }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM