![](/img/trans.png)
[英]How can a javascript function be fired when a user types text into an input field or pastes text into it?
[英]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.