Amarundo Amarundo - 15 days ago 7
Javascript Question

How to add a validation error message next to a field using jQuery

Hi have a form with a few fields. Amongst them:

<div>
<label for="phoneNumber" class="label">Phone Number</label>
<input name="phoneNumber" type="text" id="phoneNumber" size="13" style="float:left;margin-right:10px;">
</div>
<div>
<input type="checkbox" name="activePN" id="activePN" checked >
<label for="activePN">Active</label>
</div>


The, when the form is submited, I want to validate the input and write next to each field for whichever field didn't validate. Like this:

$('#submit').click(function () {
var proceed = true;
var strippedPN = $('#phoneNumber').val().replace(/[^\d\.]/g, '').toString(); //strips non-digits from the string
if (strippedPN.length !== 10) {
$('#phoneNumber').text('<p>Phone number has to be 10 digits long.</p>')
proceed = false;
}
...
...
...
});


I was hopping that adding those
<p> </p>
tags would do it. But they don't...
Note: I also tried with
html()
instead of
text()
and with
activePN
instead of
phoneNumber
.

Answer

Use .after().

$('#phoneNumber').after('<p>Phone number has to be 10 digits long.</p>')

It might be wise to add a class to your p tag too, so you can remove them when the number is edited to be correct.