Javascript 如何通过textarea输入重新调整变量创建的用途?
在我的应用程序中,我使用用户提交的文本输入来设置他们的用户名。我们现在需要的另一个功能是能够在以后获取电子邮件并将其作为变量存储。我尝试了几种不同的方法来实现它,其中一些方法是:Javascript 如何通过textarea输入重新调整变量创建的用途?,javascript,jquery,Javascript,Jquery,在我的应用程序中,我使用用户提交的文本输入来设置他们的用户名。我们现在需要的另一个功能是能够在以后获取电子邮件并将其作为变量存储。我尝试了几种不同的方法来实现它,其中一些方法是: 将输入追加回 在第一次创建时隐藏输入,然后在需要时显示 在需要时创建新输入 但是无论我尝试什么,它总是设置我的username变量,然后自动发送后续消息。用户流应为: 机器人打招呼/询问姓名 用户输入名称--设置为用户名变量 机器人说你好+用户名,然后要求发送电子邮件 用户输入电子邮件--设置为电子邮件变量 我的问题在
我的代码 获取用户名(加载时调用) 设置用户名变量
function ai(msg){
if (username.length < 3){
username = msg;
send_msg('Nice to meet you '+username+'.', function(){
send_msg("One more thing, could you enter your email below?")
});
}
}
要查看我的代码的简单示例,请查看 要查看我试图捕获电子邮件的版本,请查看
谢谢你的帮助 欢迎来到堆栈溢出。你的例子似乎与你描述的不一样。没有收到电子邮件提示。@对不起,我一定是在编辑它,如果你看一下这里,它会提示你。好的,这很有效。这似乎更像是你有状态逻辑中的一个问题。机器人是否正在发送消息、提示回答或确认某些内容?提示回答时,您可能需要推迟到用户输入响应。我怀疑变量没有在正确的时间更新,因此在收集新值之前会传回旧值。我基本上希望它的工作方式与username函数的工作方式相同,bot请求值,您键入它并按enter键,然后机器人可以引用它,因为它已更新/保存为变量。开始在此处查看它:使用延迟对象
function ai(msg){
if (username.length < 3){
username = msg;
send_msg('Nice to meet you '+username+'.', function(){
send_msg("One more thing, could you enter your email below?")
});
}
}
$('#sendMsg').click(function(){
var userName = "<span class='username'> Me: </span>";
var newMsg = $('#message').val();
$('#message').val('');
var prevState = $('#conversation').html();
if (prevState.length > 3){
prevState = prevState + '<br />';
}
$('#conversation').html(prevState + userName + newMsg);
ai(newMsg);
$('#conversation').scrollTop($('#conversation').prop('scrollHeight'));
});
} else if (b_val == "my_practicum") {
send_msg("What is the email address you submitted your practicum with? By having this we can give you a status update!" , function() {
$("#message").show();
$('button.message-tools').val('email_submitted');
$("#sendMsg").click(function() {
var email = msg;
console.log(email);
});
});
}