#html
#HTML
Вопрос:
Хорошо, итак, у меня есть чат, люди должны вводить имя, и после этого они могут общаться. Но часто люди берут имена других людей. Итак, что мне нужно, это что-то вроде ограниченного ввода
вот ввод:
<input type="text" class="input-block-level" ng-model="name" ng-change="setName()" placeholder="Your Name" maxlength="10" required></div>
Мне это нужно, поэтому, если я введу имя Bob, никто не сможет использовать это имя снова
Если вам нужен веб-сайт: https://project-js-imthatguy.c9users.io /
Комментарии:
1. Вы не сможете сделать это только с помощью HTML.
2. Что делает функция setName() ?
3. Вы где-то храните псевдонимы? Если вы это сделаете, тогда может быть решение
4. Как сказал Скотт, HTML вам здесь не поможет. Для этого требуется серверная или серверная функция для управления подключенными пользователями, скорее всего, с использованием массива для хранения имен пользователей. Вам нужно предоставить гораздо больше информации относительно вашего приложения для чата, чтобы мы могли помочь.
5. Как упоминали люди, вам понадобится больше, чем просто HTML, лучше всего подойдет серверная часть / сервер, но, похоже, вы только начинаете, поэтому я бы предложил создать что-то в JS на стороне клиента, которое проверяет их имя пользователя непосредственно перед отправкой сообщения и отправляет сообщение об ошибке, предлагающее пользователю изменитьих имя
Ответ №1:
Один из возможных способов проверки среди заданного набора…
для этого примера использовался простой цикл for
Внутри вашей функции отправки, которую вы определили, выполните проверку:
$scope.send = function send() {
var isDuplicated = 0
for (i = 0; i < $scope.roster.length; i ){
if ($scope.roster[i] == $scope.name){ isDuplicated }
}
if (isDuplicated > 1){
//make an error message appear here
//quick and dirty solution
alert('Please choose a name that has not been taken by someone else')
//suggestion set a variable here to true and then use that variable to show/hide a div below the user input area
}
else {
console.log('Sending message:', $scope.text);
socket.emit('message', $scope.text);
$scope.text = '';
}
};
Комментарии:
1. это js, правильно, поэтому мне нужно будет ссылаться на это в моем html, если это правильно, в кнопке отправки или в слоте ввода имени я должен ввести эту ссылку на send()
2. Я просто скопировал вашу функцию отправки и добавил к ней некоторые вещи, поэтому, если вы возьмете эту функцию отправки и замените свою, она может сработать, я не могу ее протестировать…