Доброе утро! Я думал несколько часов и не знаю, где ошибка, я должен проверить, что имя не содержит пробелов!
function validarNombre(){
var p1 = document.getElementById("nombre").value; //tomamos en una variable lo ingresado en el login nombre
var espacios = false;
var cont = 0;
while (!espacios && (cont < p1.length)) {
if (p1.charAt(cont) == " "){
espacios = true;
cont++;
}
}
if (espacios) {
alert ("La contraseña no puede contener espacios en blanco");
return false;
}
}
<div class="container">
<center><p class="usuario">Usuarios </p></center>
<div class="login">
<form name="login" method="post" action="#">
<label for="nombre">Nombre:</label><br>
<input type="text" onSubmit="return validarNombre()" id="nombre" name="nombre" value=""><br>
<label for="correo">Email:</label><br>
<input type="correo" name="correo" value=""><br>
<a href="#"> Suscribite Ahora </a>
<p class="submit" onclick="" >
<input type="submit" name="commit" value="Login"></p>
</form>
</div>
</div>
Заранее большое спасибо!
Здравствуйте, ваш код неэффективен при проверке символ за символом, если в нем есть пробелы или нет, вы можете использовать регулярное выражение или регулярное выражение, например, чтобы проверить его:
Как упоминалось в комментариях, приведенный выше код соответствует пробелам, табуляциям и т. д. Если вы ищете только место, сделайте это в форме
Вам не нужно изобретать велосипед, если вы хотите проверить, существует ли символ в строке или нет, используйте функцию
.indexOf()
.Если результат равен -1, это означает, что строка, переданная в качестве параметра (в вашем случае " "), не была найдена в исходной строке. В противном случае он возвращает позицию, в которой было найдено первое вхождение.
Пример
В вашем случае код может быть таким
у тебя бесконечный цикл
Так должно быть
Отвечаю на это, чтобы вы ушли от вопроса о том, почему это не работает. Однако ответ Вильфредо — правильный способ сделать эту проверку . Изучайте регулярные выражения, они упростят вам жизнь. Хотя...
Что-то более простое и без использования регулярных выражений, это сделать разделение и подсчитать количество найденных значений, и на основе этого вы узнаете, есть ли пробелы или нет.
Я признаю, что это не лучшее решение, но это что-то простое и быстрое в программировании.
Пример:
Кроме того, вы можете использовать
indexOf()
(как упоминалось в предыдущем комментарии).Пример: