Избавиться от x, если не задано расширение для поля телефона в плагине ввода с маской Jquery

Я использую jquery Маскированный плагин ввода.

У меня есть следующая маска на поле:

 "?999-999-9999 x9999"

Зачем ? в начале? потому что если пользователь ввел неполное число, я не хочу, чтобы поле очищалось, поэтому я сделал все это необязательным. Теперь, когда пользователь вводит цифры, он может видеть x всегда ли у телефона есть расширение. Как мне избавиться от этого x если расширение не было дано?

Опять же я не хочу очистить поле, если я использую

  "999-999-9999? x9999" 

да, он работает, он добавляет х только тогда, когда у него есть добавочный номер, но если введен неполный телефон, он очищает поле, которое не является целью.

Любая помощь приветствуется большое спасибо.

1 ответ

Решение

После многих попыток я исправил это сам, чтобы достигнуть цели.

Цель состояла в том, чтобы не пропустить текст, если был введен неполный ввод, и избавиться от x, если не было дано никакого расширения.

Я добавил этот тест в конце кода:

var splitString = $("[name=myinput]").val().split("x");
//if splitString array length is more than 1 means splitString[1] is set
//if splitString[1].length is 0 means its only x by itself so get rid of it
if (splitString.length > 1 && splitString[1].length == 0) {
    $("[name=myinput]").val($("[name=myinput]").val().replace("x", ""));
}

Примеры:

 entered text: 718-111-123 x -> turns into -> 718-111-123
 entered text: 718-111     x -> turns into -> 718-111
 entered text: 718-111-123 x555 -> turns into -> 718-111-123 x555
Другие вопросы по тегам