проверять массив indexof (), если кнопка нажата, не проверять, загружены ли данные прямо из куки - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь сделать что-то вроде сайта чата, теперь, когда вы загружаете сайт, вы получаете это поле ввода, в котором вас просят ввести имя, подобное этому: enter image description here после вводаНазовите имя и нажмите кнопку рядом с ним, которая говорит «перейти к чату», он задает имя пользователя, используя это:

function setUsername() {
    var textbox = document.getElementById("name");
    var txtboxval = textbox.value;
    if(textbox.value.length <= 20 && textbox.value.length >= 4){
      socket.emit('setUsername', document.getElementById('name').value);
      setCookie("username", txtboxval, 30);
      socket.on('userExists', function(data) {
        document.getElementById('messages').innerHTML = data;
      });
    }
    else{
        alert("Nimen on oltava vähintään 4 kirjainta pitkä");
        return false;
      }
    };

Он задает имя, которое вы вводите, если оно соответствует требованиям.и покажет его в отправленных вами сообщениях, он также установит значение в куки.

Это задает имя пользователя и должно проверить, существует ли оно:

socket.on('setUsername', function(data) {
      console.log(data);

        if(users.indexOf(data) > -1) {
          socket.emit('userExists', data + ' Username already in use, try another one.');
        } else {
          users.push(data);
          socket.emit('userSet', {username: data});
          console.log(users);
      }
    });

Следует проверить массивесли имя там уже существует, но его нет, после загрузки файлов cookie оно автоматически переходит на страницу отправки сообщения, если они заданы, но не разрешает отправку сообщений из-за отсутствия переменной для имени из-за блокировки средства проверкиэто от проверки.

Мне нужен метод, чтобы заставить чекер работать при первом задании имени, чтобы он предотвращал дублирование, но разрешал без проверки, если у васkies с пользовательскими данными, установленными в них.

примечание: функция socket.on и функции setUsername находятся на разных страницах, socket.on находится в "App.js" и setUsername, а функции, которые устанавливают файлы cookie, -в "Index.html".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...