маскирование zip jQuery для нескольких форматов

У меня есть требования для маскирования поля zip так, чтобы оно позволило классические 5 zip цифр (XXXXX) или 5 + 4 формата (XXXXX-XXXX).

Я мог так что-то как:

$('#myZipField').mask("?99999-9999");

но сложность прибывает из того, что тире не должен показывать, вставляет ли пользователь только 5 цифр.

Это является лучшим, я придумал до сих пор - я мог расширить его для автовставления тире, когда они вставляют 6-ю цифру, но проблемой с этим было бы забавное поведение на удалении (я мог мешать им удалить тире, но это будет, исправляя патч и т.д, это становится кошмаром):

$.mask.definitions['~']='[-]';
$("#myZipField").mask("?99999~9999", {placeholder:""});

Есть ли кто-либо из поля способ сделать это, или я должен прокрутить свое собственное?

11
задан JohnIdol 24 June 2010 в 22:31
поделиться

2 ответа

Почему бы не сделать поле прозрачным, а позади него текстовый объект со светло-серой формой? Таким образом, они видят ####### - #### в фоновом режиме, а затем настраивают его так, чтобы буквы исчезали по мере ввода. В этот момент предлагается ввести тире, если они хотят поставить лишние четыре, верно? Затем вы могли бы просто настроить скрипт на автоматическую вставку дефиса, если они ошиблись, и ввести 6 цифр?

-1
ответ дан 3 December 2019 в 09:40
поделиться

Если вы уже используете jQuery, то наверняка есть сотни плагинов, например, для масок и т.д: http://www.meiocodigo.com/projects/meiomask/

Так что я не думаю, что вам придется создавать свой собственный

1
ответ дан 3 December 2019 в 09:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: