Accueil Compétences Patterns Page Web Jquery Bloquer un champ si il est saisie en jquery

Bloquer un champ si il est saisie en jquery

Clique:
3049

Réponse

Sur un interface de saisie, il arrive que l'on ne souhaite plus pouvoir modifier un champ une fois que celui-ci a été saisie

Un première piste consiste à tester coté serveur le contenu de la zone est d'afficher selon un champs de saisie (si la zone est vide) ou le contenu de la valeur, en PHP cela donne quelque chose comme cela

if($mavaleur)  // si valeur saisie
    print $mavaleur;
else  // si valeur non saisie
    print "<input type=text name=mavaleur >";

Pour faire les choses un peu mieux si les champs à coté son saisissable, il faut ajouter un champ hidden contenant la valeur saisie

if($mavaleur)  // si valeur saisie
{
    print $mavaleur;
    print "<input type=hidden name=mavaleur value='".$mavaleur.">";
}
else  // si valeur non saisie
    print "<input type=text name=mavaleur >";

L'autre solution possible est de bloquer en jquery la zone saisie lors de son affichage

<input type=text name=mavaleur id=mavaleur >
 
<script>
if($("#mavaleur").val() != "")
$("#mavaleur").prop('disabled', true);
</script>

Je précise que pour les deux derniers cas, il est possible de "modifier" quand même le contenu de la zone en utilisant la console de développement de votre navigateur (accessible avec le [F12] du clavier).