模拟聊天机器人切换输入法?

时间:2017-06-06 20:36:51

标签: javascript jquery html

我创建了一个聊天机器人,询问用户的用户名,然后将其存储为变量。但是,在我的一个对话树中,我必须要求用户输入另一个答案,我让它工作,以便用户可以通过按钮点击进行导航。

在用户名捕获时,"输入栏"从控件中删除,我附加每个消息功能的按钮。我尝试做相反的操作(删除按钮并添加一个输入),这确实有效,但我无法做任何事情的输入。它不会在输入时提交,它不会保存变量,在我的试验和错误中,我发现如果我尝试设置一个varg那个msg值,它会更新用户名' s。

以下是我检索姓名的功能

    } 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() {
            $("#controls").append(
                      '<textarea id="message" class="practicum-bar" placeholder="Type Your Name - Then Hit Enter"></textarea><button style="display:none;" id="sendMsg">Send</button>'                  );
                 email = msg;
        console.log(email);
      });
    } 
}

以下是我尝试捕获电子邮件的功能

$query = 'new';
$searched = "New York Yankees in New York";
$r = preg_replace("/($query)/i", "<span class='hilight'>$1</span>", $searched);
echo'r is: ',$r;

如果你想看到这个,我的 JSFiddle你可以通过这个用户路径看到它

  

输入姓名&gt;认证&gt;我的实习&gt;输入电子邮件

对此有任何帮助表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:0)

看起来您通过执行controls删除$("#controls").empty();并且您想要向动态创建的元素添加事件,因此您必须将上下文添加到.on的第二个参数。第二次单击输入时立即查看you can see the console.log in the fiddle,因为jquery现在可以检测到该项目。

$("#controls").on("keypress", "#message", function(event){

 if (event.which == 13) {
      console.log("my test");
      if ($("#slideThree").prop("checked")) {
         $("#sendMsg").click();
         event.preventDefault();
         //*edit you can now change variables outside of scope*
      }
  } 
});

现在您可以进行事件处理。