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

Я использую плагин ввода jquery Masked.

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

 "?999-999-9999 x9999"

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

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

  "999-999-9999? x9999" 

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

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


person Giorgi    schedule 03.12.2012    source источник
comment
В демо уже есть что-то подобное...   -  person Cerbrus    schedule 03.12.2012
comment
нет, у демо есть вторая версия, которая у меня есть, которая очищает текст, если указан неполный телефон.   -  person Giorgi    schedule 03.12.2012
comment
Ах я вижу. Без понятия, тогда   -  person Cerbrus    schedule 03.12.2012


Ответы (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
person Giorgi    schedule 03.12.2012