MaskedInput с двумя необязательными разделами не работает

Я использую плагин MaskedInput для jQuery, чтобы создать маску ввода с двумя необязательными разделами.

a?a-a?a, где второй символ необязателен.

Но MaskedInput всегда считает это недопустимым вводом, если я ввожу a-a, даже если второй символ помечен как необязательный.

скрипка


person Ray Cheng    schedule 25.06.2013    source источник


Ответы (1)


Если вы внимательно прочитаете документацию… что я и сделал, так как никогда не использовал этот плагин, то там ясно сказано, что http://digitalbush.com/projects/masked-input-plugin/ :

Вы можете сделать так, чтобы часть вашей маски была необязательной. Все, что указано после '?' в маске, считается необязательным пользовательским вводом. Типичным примером для этого является номер телефона + необязательный добавочный номер.

Значит, ты не можешь делать то, что хочешь? но вы можете использовать это:

Если предустановленные заполнители не соответствуют вашим требованиям, вы всегда можете добавить свои собственные. Например, может быть, вам нужна маска, чтобы разрешить только шестнадцатеричные символы. Вы можете добавить собственное определение заполнителя, скажем, «h», например: $.mask.definitions['h'] = "[A-Fa-f0-9]"; Затем вы можете использовать это, чтобы замаскировать что-то вроде цветов css.

Таким образом, мы можем определить маску для альфа + пробел

$.mask.definitions['h'] = "[A-Za-z ]"
$('#blah').mask('ah-ah');

http://jsfiddle.net/ERfz4/

проблема с этим кодом в том, что это не совсем то, что вам нужно. Он будет принимать «аа-аа» и «а-а», но не «а-а» или «а-а».

Я думаю, что для того, что вам нужно, вы можете попробовать реализовать это самостоятельно, а не использовать этот плагин.

person Avner Solomon    schedule 25.06.2013
comment
Я не уловил подразумеваемого значения, что я не должен/не могу использовать ? несколько раз. - person Ray Cheng; 26.06.2013
comment
да.. по крайней мере я так понимаю из документации печально - person Avner Solomon; 26.06.2013