J'essaie de faire afficher du texte lorsqu'une entrée de texte est au point, mais le plus proche (); La méthode ne semble pas fonctionner.
J'ai fait un JS Fiddle pour que vous regardiez.
et voici aussi le code.
JS
$(document).ready(function(){
$('.validation-error').hide();
$('.name-input').on("focus", function(){
$(this).closest('.validation-error').show();
});
});
HTML
<fieldset>
<legend>User Details</legend>
<table>
<tr>
<td width="200">
<label for="user"><span class="required-fields">*</span> User Name</label>
</td>
<td>
<input type="text" id="user" class="name-input">
</td>
<td>
<p class="validation-error">This field cannot be blank or less than 2 characters.</p>
</td>
</tr>
<tr>
<td>
<label for="job_title"><span class="required-fields">*</span> Job Title</label></td>
<td>
<input type="text" id="job_title" class="name-input">
</td>
<td>
<p class="validation-error">This field cannot be blank or less than 2 characters.</p>
</td>
</tr>
<tr>
<td>
<label for="full_name">* Full Name</label>
</td>
<td>
<input type="text" id="full_name" class="name-input">
</td>
<td>
<p class="validation-error">This field cannot be blank or less than 2 characters.</p>
</td>
</tr>
</table>
</fieldset>
Toute aide serait appréciée.
. .most () trouve l'élément parent le plus proche, .validation-error
n'est pas un parent de name-input
élément. Vous avez besoin du .validation-error
élément qui appartient au même tr
que l'élément d'entrée
Vous avez besoin
$(this).closest('tr').find('.validation-error').show();
ou
$(this).closest('td').next().find('.validation-error').show();
Essayez ma version Demo Fiddle bien que la réponse d'Arun P. Johny soit bien meilleure ..
$(this).parent().siblings().find('.validation-error').show();