<script type="text/javascript">
function validate() {
if (document.form.price.value.trim() === "") {
alert("Please enter a price");
document.form.price.focus();
return false;
}
if (document.form.price.value !== "") {
if (! (/^\d*(?:\.\d{0,2})?$/.test(document.form.price.value))) {
alert("Please enter a valid price");
document.form.price.focus();
return false;
}
}
return true;
}
</script>
<form action="" method="post" name="form" id="form" onsubmit="return validate(this);">
<input name="price" type="text" class="r2" />
<input name="price2" type="text" class="r2" />
<input name="price3" type="text" class="r2" />
<input name="price4" type="text" class="r2" />
<input name="price5" type="text" class="r2" />
...more....
<input name="price50" type="text" class="r2" />
This javascript code is working fine to validate the field "price".
Question :
How to make the code to work as global validation? Example: would validate the price, price2, price3, price4, price5 etc.. with a single function. Please let me know :)
Client side validation occurs using HTML5 attributes and client side JavaScript. You may have noticed that in some forms, as soon as you enter an invalid email address, the form gives an error "Please enter a valid email". This immediate type of validation is usually done via client side JavaScript.
Data validation is the process of ensuring that user input is clean, correct, and useful. Typical validation tasks are: has the user filled in all required fields? has the user entered a valid date? has the user entered text in a numeric field?
To validate the form using HTML, we will use HTML <input> required attribute. The <input> required attribute is a Boolean attribute that is used to specify the input element must be filled out before submitting the Form.
My personal recommendation would be something like this:
<script type="text/javascript">
function validate() {
return [
document.form.price,
document.form.price2,
document.form.price3,
document.form.price4,
document.form.price5
].every(validatePrice)
}
function validatePrice(price)
{
if (price.value.trim() === "") {
alert("Please enter a price");
price.focus();
return false;
}
if (price.value !== "") {
if (! (/^\d*(?:\.\d{0,2})?$/.test(price.value))) {
alert("Please enter a valid price");
price.focus();
return false;
}
}
return true;
}
</script>
If you do not plan on using jQuery this should work.
function validate() {
for (var field in document.getElementsByTagName('input')) {
if (isPriceField(field)) {
field.value = field.value.trim();
if (isNaN(parseFloat(field.value))) {
return alertAndFocus(field, "Please enter a valid price");
}
}
}
return true;
}
function isPriceField(field) {
return (field.name.substr(0, Math.min(5, field.name.length)) === 'price')
}
function alertAndFocus(field, message) {
alert(message);
field.focus();
return false;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With