dukiejc99
asked on
Need help to validate an input field to allow for only numbers and decimal
Hi,
I need help to validate an input field to only allow numbers from 0 to 999 and in addition to also allow for up to one decimal place.
Any help would be appreciated.
Thanks
-dukiejc
I need help to validate an input field to only allow numbers from 0 to 999 and in addition to also allow for up to one decimal place.
Any help would be appreciated.
Thanks
-dukiejc
Have a look at this jQuery alphanumeric validation plugin
http://www.itgroup.com.ph/alphanumeric/
http://www.itgroup.com.ph/alphanumeric/
ASKER
Sorry but I need a little bit more help on this. I took a look at both and not sure how to modify the function for the parameters I need.
my function receive your string (field value) and return a boolean :
- true if valid
- false if not valid
- true if valid
- false if not valid
A new test page : http://jsfiddle.net/nbRYd/4/
ASKER
hi leakim971,
Would it be something like this if I have 4 fields to validate?
<script>
function validate(str) {
return /^\d{0,3}(.\d)?$/.test(str );
}
function validateAll() {
var field1 = document.getElementById("f ield1");
var field2 = document.getElementById("f ield2");
var field3 = document.getElementById("f ield3");
var field4 = document.getElementById("f ield4");
if( !validate( field1.value ) ) {
alert("Please enter a correct field1 number");
}
return true;
else if(!validate( tc_field2.value )) {
alert("Please enter a correct field2 number");
}
return true;
else if(!validate( field3.value )) {
alert("Please enter a correct field3 number");
}
return true;
else if(!validate( tc_field4.value )) {
alert("Please enter a correct field4 number");
}
return true;
}
</script>
<form id="testform" method="post" action="#" onsubmit="return validateAll();">
<input id="field1" class="text" type="text" name="field1" />
<input id="field2" class="text" type="text" name="field2" />
<input id="field3" class="text" type="text" name="field3" />
<input id="field4" class="text" type="text" name="field4" />
<input type="submit" value="Submit">
</form>
Would it be something like this if I have 4 fields to validate?
<script>
function validate(str) {
return /^\d{0,3}(.\d)?$/.test(str
}
function validateAll() {
var field1 = document.getElementById("f
var field2 = document.getElementById("f
var field3 = document.getElementById("f
var field4 = document.getElementById("f
if( !validate( field1.value ) ) {
alert("Please enter a correct field1 number");
}
return true;
else if(!validate( tc_field2.value )) {
alert("Please enter a correct field2 number");
}
return true;
else if(!validate( field3.value )) {
alert("Please enter a correct field3 number");
}
return true;
else if(!validate( tc_field4.value )) {
alert("Please enter a correct field4 number");
}
return true;
}
</script>
<form id="testform" method="post" action="#" onsubmit="return validateAll();">
<input id="field1" class="text" type="text" name="field1" />
<input id="field2" class="text" type="text" name="field2" />
<input id="field3" class="text" type="text" name="field3" />
<input id="field4" class="text" type="text" name="field4" />
<input type="submit" value="Submit">
</form>
code updated : http://jsfiddle.net/nbRYd/7/
function validate(str) {
return /^\d{0,3}(.\d)?$/.test(str);
}
function validateAll() {
var field1 = document.getElementById("field1");
var field2 = document.getElementById("field2");
var field3 = document.getElementById("field3");
var field4 = document.getElementById("field4");
if( !validate( field1.value ) ) {
alert("Please enter a correct number");
field1.focus();
return false;
}
if( !validate( field2.value ) ) {
alert("Please enter a correct number");
field2.focus();
return false;
}
if( !validate( field3.value ) ) {
alert("Please enter a correct number");
field3.focus();
return false;
}
if( !validate( field4.value ) ) {
alert("Please enter a correct number");
field4.focus();
return false;
}
return true;
}
ASKER
one more thing - it's still allowing me to add more than 4 numbers (9999). I need it to only allow between 0-999 for integers and up to one decimal after that. (999.9)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for all your help.
return /^\d{0,3}(.\d)?$/.test(str
}
test page : http://jsfiddle.net/nbRYd/