我正在构建一个聊天应用程序,我想要求用户输入他们的用户名。 JQuery前端代码将表单滑入视图(准备就绪),将数据存储到变量中,然后加载聊天(当按下Enter键或按钮时)。除非我在服务器端验证用户输入,否则如何停止该动画?我使用node.js作为后端。有任何想法吗?从node.js后端控制前端javascript
在此先感谢!
前端的jQuery:
var nameChoice, roomChoice; //to store user input
var initName = function() {
\t \t nameChoice = $("#init-name input").val(); //save chosen name in nameChoice
\t \t $("#current-name").text("Username: " + nameChoice); //put chosen name in chat header
\t \t $("#init-name").animate(
\t \t \t {"left" : "-35%"}, 300,
\t \t \t function() {
\t \t \t \t $(this).addClass("hidden");
\t \t \t \t $("#init-room").removeClass("hidden");
\t \t \t \t $("#init-room").animate({"left" : "35%"}, 300);
\t \t }); //remove name form and slide in room form in callback
\t } //end initName
var initRoom = function() {
\t \t roomChoice = $("#init-room select").val(); //save chosen room in roomChoice
\t \t $("#current-room").text("Room: " + roomChoice); //put chosen room in chat header
\t \t $("#init-room").animate(
\t \t \t {"left" : "-35%"}, 300,
\t \t \t function() {
\t \t \t \t $(this).addClass("hidden");
\t \t \t \t $("#chat-main").removeClass("hidden");
\t \t }); //remove room form and show page in callback
\t } //end initRoom
var btnHover = function() {
\t $(".btn-form").hover(
\t \t function() {
\t \t \t $(this).stop().animate(
\t \t \t {
\t \t \t \t backgroundColor : "#FFBD7A"
\t \t \t }, 300);
\t \t },
\t \t function() {
\t \t \t $(this).stop().animate(
\t \t \t {
\t \t \t \t backgroundColor : "white"
\t \t \t }, 300);
\t \t });
}
var init = function() {
\t $("#init-name").removeClass("hidden").animate({"left" : "35%"}, 300); //slide in name form
\t
\t $(document).keydown(function(event) { //submit choice on enter key
\t \t if (event.which === 13) {
\t \t \t if (!$("#init-name").hasClass("hidden")) { //if user is choosing name
\t \t \t \t event.preventDefault();
\t \t \t \t initName(); //call initName function
\t \t \t }
\t \t \t if (!$("#init-room").hasClass("hidden")) { //if user is choosing room
\t \t \t \t event.preventDefault();
\t \t \t \t initRoom(); //call initRoom function
\t \t \t }
\t \t }
\t }); //end enter key submission
\t $("#init-name .btn-form").click(initName);
\t $("#init-room .btn-form").click(initRoom);
\t btnHover(); \t
} //end init
$(document).ready(init);
我还在学习的节点,所以还没有后端代码...
请张贴一些代码。 – SoluableNonagon
但是,为了回答你的问题,一般来说,当用户点击回车键时,将数据发送到后端(AJAX)并让它返回成功或失败的响应,如果成功则继续加载聊天回来,否则保持用户的形式。 – SoluableNonagon
@SoluableNonagon - 所以我做了:) – dzenesiz