powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Что с кодом не так?
5 сообщений из 5, страница 1 из 1
Что с кодом не так?
    #39074866
Фотография Gadbul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте! У меня есть поле, в которое пользователем записывается его имя. У меня есть постоянное выражение, которое проверяет поля на ввод только русских букв. Теперь к проблеме. Если после ошибочного ввода пользователь вводит все правильно потом переходит на другое поле то, а потом нажимает на это поле, то все что там написано сбрасывается. а мне это не надо.

вот код:
<form >
<b>Ваше имя:</b><br>
<input type="text" name="client" size="20" class="client"><br>

<b>Ваш номер телефона:</b><br>
<input type="text" name="phone" class="phone"><br>


<script>
$(document).ready(function(){
var suc=0;

$(".phone").change(function () {
var sac=0;
var re = /^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/;
var myPhone = $(".phone").val();
var valid = re.test(myPhone);
if (!valid || $(".phone").val().length>11 || $(".phone").val().length<11) {$(".phone").val('Номер введен неправильно!');
$(".phone").css({"color":"red","box-shadow":" inset 0px 0px 14px red"});
sac=1;
phoneclear(sac);
sac=0;}

});
$(".client").change(function () {

var re = /^[а-яА-ЯёЁ]+$/;
var myName = $(".client").val();
var valid = re.test(myName);
if (!valid ) {$(".client").val('Имя введено некорректно!');
$(".client").css({"color":"red","box-shadow":" inset 0px 0px 14px red"});
suc=1;
nameclear(suc);
suc=0;}


});

function nameclear(elclin){
$(".client").click( function () {
if (elclin==1){
$(".client").val('').css({"color":"black","box-shadow":" inset 0px 0px 14px green"}); } });

console.log(elclin);
}
function phoneclear(elph){
if (elph==1){$(".phone").click( function () {$(".phone").val('');$(".phone").css({"color":"black","box-shadow":" inset 0px 0px 14px green"}); }); }

}

});
...
Рейтинг: 0 / 0
Что с кодом не так?
    #39074867
Фотография Gadbul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите в чем ошибка? Или как это сделать по-другому?
...
Рейтинг: 0 / 0
Что с кодом не так?
    #39074924
Фёдор К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GadbulПодскажите в чем ошибка? Или как это сделать по-другому? - Код ведет себя как написан.
Логика работы неправильная - разбирайтесь. Всё наглядно.
...
Рейтинг: 0 / 0
Что с кодом не так?
    #39074925
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gadbul, значение поля сбрасывается потому что ты запрограммировал такую логику. В случае ошибки на поля навешивается обработчик события click очищающий поле который остается там "навсегда". Я бы переделал логику валидации т.к. удаление введенного пользователем значения это плохая идея. Человек случайно печает лишную цифру в номере телефона или вводит не русскую букву в имени и то что он ввел полностью теряется. Выводи сообщение рядом с полем или оставь только подсветку неправильного поля.

Gadbulvar myPhone = $(".phone").val();
var valid = re.test(myPhone);
if (!valid || $(".phone").val().length>11 || $(".phone").val().length<11) {$(".phone").val('Номер введен неправильно!');
$(".phone").css({"color":"red","box-shadow":" inset 0px 0px 14px red"});
Это плохой код. Во-первых, ты постоянно читаешь значения поля когда это можно было сделать один раз. Во-вторых, вместо повторения $(".phone") лучше написать $(this) чтобы было меньше повторений селектора. В-третьих, условие length>11 || length<11 можно записать как length!=11, а еще лучше вообще его убрать т.к. длина задана в регулярном выражении.
...
Рейтинг: 0 / 0
Что с кодом не так?
    #39074926
Фёдор К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gadbul,

И я бы посоветовал использовать не .change() а .focus() и .blur().
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Что с кодом не так?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]