• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 191
  • Last Modified:

validating a text field!!!

hai all,

I have textbox for user to key in product_id, I wanted to check the following while keyin itself(it is a alphanumeric value)
1)first two characters should be alphabets.
2)remaining should b numeric.
3)user should not key in beyond 13 characters.

how am I  go about it? can any one feed back to me.

0
manju70
Asked:
manju70
  • 4
  • 4
  • 3
1 Solution
 
zvonkoCommented:
How about this:
<html>
<head>
<script>
function checkField(event, thisField) {
  thischar = (event.which) ? event.which : event.keyCode;
  if(thischar < 32) return true;
  if(thischar > 90) return false;
  if(thischar < 48) return false;
  if(thisField.value.length < 2) {
      if(thischar > 64) return true;
      alert('Only A-Z in first two positions.')
      return false;
  }
 return true;
}
</script>
</head>
<body>
<form>
<input type=text size=13 maxlength=13 onKeyDown="return checkField(event, this)">
</form>
</body>
</html>


Good luck,
zvonko

0
 
CJ_SCommented:
Another one which also works in Netscape:

function checktextbox(tObj)
{
     sVal = tObj.value;
     sTmp = "";
     sAlpha = "abcdefghijklmnopqrstuvwxyz";
     sNumeric = "1234567890";
     
     bFalse = false;
     for(i=0;i<sVal.length;i++)
     {
          if(i<2 && sAlpha.indexOf(sVal.charAt(i))<0)
               bFalse = true;
          else
               sTmp += sVal.charAt(i);
          if(i>=2 && sNumeric.indexOf(sVal.charAt(i))<0)
               bFalse = true;
          else
               sTmp += sVal.charAt(i);
     }
     tObj.value = sTmp;
}

with:

<input type=text onKeyUp="checktextbox(this)" maxlength=13>
0
 
CJ_SCommented:
Can be shorter:

function checktextbox(tObj)
{
    sVal = tObj.value;
    sTmp = "";
    sAlpha = "abcdefghijklmnopqrstuvwxyz";
    sNumeric = "1234567890";
   
    bFalse = false;
    for(i=0;i<sVal.length;i++)
    {
         if(i<2 && sAlpha.indexOf(sVal.charAt(i))>=0)
              sTmp += sVal.charAt(i);
         if(i>=2 && sNumeric.indexOf(sVal.charAt(i))>=0)
              sTmp += sVal.charAt(i);
    }
    tObj.value = sTmp;
}
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
CJ_SCommented:
and this one can be gone:
bFalse = false;
0
 
manju70Author Commented:
hai zvonko,
Thank you for ur reply

can u please give me the feed back as for what u check the first 3 if condititons.

actually I tried ur coding , it doesn't accepts key in numbers for first two characters. but can accept keyin alpabets for remaining 11 characters.(actually I require remaining 11 should accept only alphabets)

expecting ur reply.
manju
0
 
manju70Author Commented:
sorry remaining 11 characters should accept only numbers.

manju
0
 
manju70Author Commented:
sorry remaining 11 characters should accept only numbers.

manju
0
 
zvonkoCommented:
Than this would do:
<html>
<head>
<script>
function checkField(event, thisField) {
 thischar = (event.which) ? event.which : event.keyCode;
//alert("key: "+thischar)
 if(thischar < 32) return true;
 if(thischar > 122) return false;
 if(thischar < 48) return false;
 if(thisField.value.length < 2) {
    if(thischar > 57) return true;
    alert('Only A-Z in first two positions.')
    return false;
 } else {
    if(thischar < 58) return true;
    alert('Only 0-1 after first two positions.')
    return false;
 }
}
</script>
</head>
<body>
<form>
<input type=text size=13 maxlength=13 onKeyDown="return checkField(event, this)">
</form>
</body>
</html>

This numbers are ASCII values of pressed key.
The first IF let all control keys pass, like backspace.
Numbers 48 to 57 are digits.
Numbers 58 to 122 are alpha.

You see?

0
 
zvonkoCommented:
Second active alert is a nonsense :)

It should read:
alert('Only 0-9 after first two positions.')

The first commented alert is to test key values you like to add to checking.

Cheers,
zvonko

0
 
zvonkoCommented:
Thanks for the points manju70 :)

How does my code work for you?

0
 
manju70Author Commented:
yah it works the way I expected.Thanks & hats off.
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 4
  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now