And of course, the second I say I am done...I am not.
If you don't put in the right number of characters...like if you only put
half the field in and blur, it erases the content completely.
I think this is bad UX.  (Sorry)  Sometimes someone might know their zip
(first 5 digits) then click to go to another window to lookup on
usps.comtheir +4.  It shouldn't delete it.

Is it possible to fix this?  Would I have to edit the plugin directly?  Ugh?
Does Josh view this?  Ill send directly to him. :)

Glen

On 5/23/07, Glen Lipka <[EMAIL PROTECTED]> wrote:


On 5/23/07, Chris W. Parker < [EMAIL PROTECTED]> wrote:
>
>
> On Wednesday, May 23, 2007 3:00 PM Glen Lipka <> said:
>
> > Trying to use this.
> > http://digitalbush.com/projects/masked-input-plugin
> > It is an awesome plugin by the way!
>
> Yeah that is pretty sweet. Except that...
>
> It's a waste. You *still* absolutely have to do proper server-side
> validation. Client-side validation is trivial to circumvent.
>
> Although, security issues aside, I guess it could help to prevent
> mistakes from your users. Would it make things easier for the user or
> frustrating?
>
> > I want to put in the spaces like this 9999 9999 9999 9999.
> > But for Amex I want 9999 999999 99999.
> > Ultimately, I want to submit to the server without spaces. (Maybe a
> > hidden form field)
> >
> > How should I achieve this?
>
> > Possibility #2: onChange of the select, change the class of the input
> > and then re-apply the mask with an if statement which reads the class
> > and applies the correct mask. Totally unsure how to do this.
>
> I'd go this route. I would do it on blur because I seem to recall FF not
> recognizing onchange in certain cases.
>
> js:
>
> // set the default field mask
> $('#cc_field').maskedinput('visamc_mask');
>
> // now change the mask if necessary
> $('#selectbox').blur(function () {
>         // is it this.value?
>         if(this.value == 'amex')
>         {
>                 $('#cc_field').maskedinput("...");
>         }
> });
>
>
>
> Chris.
>


This seems to work for me:
  $("input.phone").maskedinput("(999) 999-9999");
  $("input.zipcode").maskedinput("99999-9999");
  $("input.ccDefault").maskedinput("9999 9999 9999 9999");
  $("input.ccAmex").maskedinput("9999 999999 99999");


  $("form select.creditCardType").change(
    function() {
      switch ($(this).val()){
        case 'amex':
          $("input.ccDefault").hide();
          $("input.ccAmex").show();
          break;
        default:
          $("input.ccDefault").hide();
          $("input.ccAmex").show();
          break;
      }
    }
  );

 $("input.ccNumber").blur(
    function() {
      hiddenStrValue = $(this).val().replace(new RegExp("[^0-9]{1,}",
"gi"), "");
      $(this).siblings("input.hidden").val(hiddenStrValue);
    }
  );


I sort of got lost on some of the suggestions.
Regarding server-side validation, I am assuming that the backend
programmer will include that as well.
However, the more that can be done to avoid errors, the better.  JS is
much faster than server-side round trips.

It's not a waste of time though because it gives me a chance to make the
user feel that this is a modern dynamic application, early on in the
process.
Cart abandonment is a huge problem and my work at Intuit taught me that
small changes can add up to alot of money.

Ok, one more time:  I LOVE THIS PLUGIN.  It kicks ass.
Based on the code above, did I do something that could have been
shorter/sweeter?

Glen


Reply via email to