Когда поле находится в фокусе и если поле было пустым, должно появится значение +7, если уже было введено какое-либо значение, это не выполняется. Далее, после снятия фокуса с поля, появляются 2 сообщения о том, что поле было покинуто и само введенное значение, выполнятся сравнение введенного значения с регулярным выражением (проверяла правильность шаблона в редакторе регулярных выражений), если функция возвращает true, появляется сообщение о совпадении, иначе о не совпадении и поле выделяется красным, а внизу поля появляется еще одно сообщение.
Проверка, похоже, вообще не происходит, потому что у меня выпадает только первые два сообщения, о покидании поля и значение поля.
<input type="text" name="telephone" id="telephone" onfocus="focusTelephone(this.value)" onblur="checkTelephone(this.value)" placeholder="Телефон" /><br />
<span id="error_telephone" style="display:none; color:red"></span>
function focusTelephone(box) {
if (box == "") {
$("#telephone").val("+7")
};
}
function checkTelephone(telephone) {
alert("Вы покинули поле телефона!");
alert(telephone);
let format = new RegExp("^(\+7)+([0-9]{10})$");
let error_tel = "Номер телефона введён некорректно! Пример ввода: +70000000000<br />";
if (format.test(telephone) == true) {
alert("Match");
$("#telephone").css("border-color", "green");
$("#error_telephone").html("");
$("#error_telephone").css("display", "none");
} else {
alert("Not match");
$("#telephone").css("border-color", "red");
$("#error_telephone").html(error_tel);
$("#error_telephone").css("display", "block");
};
}
*
я добавила еще поле email, чтобы было видно, ошибки в формулировке кода нет
**
выводится ошибка в регулярном выражении, но повторюсь, я проверяла его в редакторе
***
если регулярное выражение для номера телефона ^(\+7)+([0-9]{10})$
заменить на ^(\+7)
или \d{12}
, то проверка выполняется, но собственно, регулярное выражение не верное, мне необходимо, чтобы номер телефона начинался с +7, а остальная часть состояла из цифр без пробелов, скобок и тире