While looking for a mortgage company to refinance his loan, Evgeny Potashnik came across Australian Mortgage Options. They seemed decent enough; they even had an online loan management site. Curious to see what it offered, Evgeny took a peek…

The first thing he was greeted with on their loan service page was a rather peculiar login. Customers are asked to enter their loan number, one digit at a time:

It seemed a bit strange, but Evgeny figured they’d have some JavaScript to automatically move the focus to the next textbox. Nope! But they did, however, put validation for each textbox:

The first box should contain a number. Please try it again...
The second box should contain a number. Please try it again...
The third box should contain a number. Please try it again...
The fourth box should contain a number. Please try it again...
The fifth box should contain a number. Please try it again...

As for how they implemented the validation, that can be found in the Funder() function...

function Funder(){

  var First,Second,Third,Fourth,Fifth,Sixth,Seventh,Eight,Nineth,Tenth

  First  = parseFloat(document.amo.l1.value);

  if ((isNaN(document.amo.l1.value)) || (document.amo.l1.value=="")) {
    alert("The first box should contain a number. Please try it again...")
    document.amo.l1.focus()
    return false
  }

  Second  = parseFloat(document.amo.l2.value);

  if ((isNaN(document.amo.l2.value)) || (document.amo.l2.value=="")) {
    alert("The second box should contain a number. Please try it again...")
    document.amo.l2.focus()
    return false
  }

... snip ...

  Fifth  = parseFloat(document.amo.l5.value);

  if ((isNaN(document.amo.l5.value)) || (document.amo.l5.value=="")) {
    alert("The fifth box should contain a number. Please try it again...")
    document.amo.l5.focus()
    return false
  }                                                                                                                       

  if((document.amo.l1.value=="3") || (document.amo.l1.value=="0")){
    document.amo.action="javascript:OpenOLBWindow();"
  } else {
    document.amo.action="javascript:doOpen2()"
  }
}

After seeing this, Evgeny decised AMO wasn't the lender for him...

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!