我的script.js文件中有一个提示,该提示接受输入(用户名)并将其存储在数组中,然后应将数组发送到服务器。

我想知道如何才能使“ prompt.submit”部分正常工作,因为它当前指出在控制台中“ prompt.submit不是函数”。 -我知道这是不正确的,但是我不确定该怎么做。

var socket = io();

var items = [];
var user = user;
if (!user) {
  user = prompt('Please choose a username:');
  items.push(user);
  if (!user) {
    alert('Your name has been set to "Anonymous"');
  } else {
      alert('Your name has been set to "'+ user +'"');
  }
}
console.log(items);

$(function (e) {
    prompt.submit(function(e) {
      e.preventDefault(); // prevents page reloading
      socket.emit(items);
      return false;
    });
  });


请注意,我将以上代码基于以下工作代码,该代码从HTML文件中的表单获取输入并将其发送到服务器:

 $(function () {
    $('form').submit(function(e) {
      e.preventDefault(); // prevents page reloading
      socket.emit('chat message', $('#m').val());
      $('#m').val('');
      return false;
    });
  });


如何在此.js文件中为提示重新创建$('form').submit

最佳答案

因为没有这样的方法,所以无需显式调用hint.submit。使用提示将冻结代码的执行位置,并继续单击“确定”,同时最终也会获得其价值



$("document").ready(function () {
  //var socket = io();

var items = [];
var user = prompt('Please choose a username:');

  if (!user || user ==="") {
    alert('Your name has been set to "Anonymous"');
    items.push("Anonymous")
  } else {
    items.push(user);
      alert('Your name has been set to "'+ user +'"');
  }


  sendItems(...items)


function sendItems(items) {
  console.log(items)
  //socket.emit('chat message',items);
  return false;
}
    });

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

07-24 18:17
查看更多