Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jquery masked input plugin to not clear field when errored

I'm looking at the http://digitalbush.com/projects/masked-input-plugin/

I'm calling it like this:

$(control).mask('999-999-9999');

And I don't want it to throw away the users input if something is wrong, e.g. they haven't finished

[407-555-____]

If you leave the field after having typed this much, it clears it. I'd like to leave it so they can finish later.

I'm new to jQuery, and I've looked through his source, but I can't find any way to do that, nor can I find any way to edit it to accomplish what I want, because the code is arcane to my eyes.

like image 351
McKay Avatar asked Mar 20 '12 21:03

McKay


3 Answers

Set autoclear option to false.

$(control).mask('999-999-9999', {autoclear: false});
like image 56
Angela Nicholas Avatar answered Nov 18 '22 09:11

Angela Nicholas


It looks like I should just make the whole mask optional:

mask('?999-999-9999')

That way the control thinks what the user has is "valid" and I can continue. Even though it isn't really the optional part of the mask.

like image 42
McKay Avatar answered Nov 18 '22 09:11

McKay


You should delete statement input.val(""); in checkVal() function for a proper solution.

If you're using minified version, you should search and delete statement:

if(!a&&c+1<i)f.val(""),t(0,k);else
like image 2
Ahmet Polat Avatar answered Nov 18 '22 10:11

Ahmet Polat