1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // Author: Matthew Shiel
- $("#user-input-form").submit(
- function (event) {
- event.preventDefault();
- // Store input in a variable
- var question = $('#user-input').val().trim() // Remove whitespace
- var bot = $('#bot-name').val().trim() // Remove whitespace
- var session = $('#session-id').val().trim() // Remove whitespace
- var user = $('#user-name').val().trim() // Remove whitespace
- // Clear the input box
- $('#user-input').val("");
- // If the user doesn't input anything return nothing
- if (!question) {
- return;
- }
- // Append the user's question to the list and clear input
- $("#output-area").append('<li>' + question + '</li>');
- // scroll to the bottom of the messages
- // adapted from https://stackoverflow.com/questions/11715646/scroll-automatically-to-the-bottom-of-the-page
- $('#output-area').animate({
- scrollTop: $('#output-area').prop("scrollHeight")
- }, 300);
- $.get('/user-input', {
- value: question,
- bot: bot,
- session: session,
- user: user
- })
- .done(function (data) {
- // Set a timeout to make Eliza seem like she's thinking
- // Adapted random number in a range from here https://stackoverflow.com/questions/1527803/generating-random-whole-numbers-in-javascript-in-a-specific-range
- setTimeout(() => {
- // Add Eliza's answer to the list
- addListItem(data);
- }, Math.floor(Math.random() * (2000 - 600 + 1)) + 600);
- })
- });
- function addListItem(input) {
- // Add the input to the list
- $("#output-area").append('<li>' + input + '</li>')
- // Automatically scroll to the last message
- // adapted from https://stackoverflow.com/questions/11715646/scroll-automatically-to-the-bottom-of-the-page
- $('#output-area').animate({
- scrollTop: $('#output-area').prop("scrollHeight")
- }, 300);
- }
|