Я пытаюсь сделать что-то вроде сайта чата, теперь, когда вы загружаете сайт, вы получаете это поле ввода, в котором вас просят ввести имя, подобное этому:
после вводаНазовите имя и нажмите кнопку рядом с ним, которая говорит «перейти к чату», он задает имя пользователя, используя это:
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".