Вопрос

У меня есть требования к маскированию поля ZIP, чтобы он допускал классические 5-цифры Zip (xxxxx) или формата 5 + 4 (xxxxx-xxxx).

Я мог так что-то вроде:

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

Но осложнение происходит от того, что пример не следует отображать, если пользователь помещает только 5 цифр.

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

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

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

Это было полезно?

Решение

Вам не нужно использовать другой плагин. Просто переместите знак вопроса, чтобы вместо:

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

Вы должны использовать:

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

В конце концов, это не вся строка, которая не является обязательной, просто - и дальше.

Другие советы

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

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

Этот почтовый индекс на самом деле прост, но когда у вас есть более сложный формат для обработки, вот как он решается с плагином (из Демострационная страница):

var options =  {onKeyPress: function(cep, e, field, options){
  var masks = ['00000-000', '0-00-00-00'];
    mask = (cep.length>7) ? masks[1] : masks[0];
  $('.crazy_cep').mask(mask, options);
}};

$('.crazy_cep').mask('00000-000', options);

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top