Comment rajouter du contenu dans une balise [Résolu]

Signaler
-
 QD -
Bonjour,

J'ai fait plusieurs recherche mais en vain... Le problème est le suivant : je souhaite rajouter du contenu dans un input lorsque je coche la case qui me fait apparaître toute une div. J'ai pensé à ce moyen pour que les obligations de formulaire soient pris en compte dans cette div uniquement lorsque l'on coche la case. Du coup voici le code côté js :

function display()
{
 
if(document.getElementById('remplacant').checked)
{
  document.getElementById("hiddenField").style.display = "block";
  document.getElementById('obligation').innerHTML=("required pattern='[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}'");
  
  document.getElementById('obligation2').innerHTML=("required");
}
else
{
  document.getElementById("hiddenField").style.display = "none";
}
}


et voici le code ou je veux rajouter le contenu required :

<input style="background-color: #fff;" type="texte" id="obligation" name="date_entree" label="Date entrée" class="form-control"  >


J'espère que quelqu'un trouvera une solution j'ai cherché toute la journée...

4 réponses

Messages postés
32514
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mai 2021
3 492
Bonjour
Ce n'est pas innerHTML qu'il faut utiliser mais l'ajout d'attributs à ton élément input.
J'ai pourtant essayé cette méthode mais je n'y parvient toujours pas à la faire fonctionner ...
document.getElementById('obligation').setAttribute("required pattern='[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}'");


pourtant j'ai essayé de me renseigner sur des sites la syntaxe à appliquer est la suivante : "Element.setAttribute(name, value);" Sauf que je ne vois pas comment le formuler pour mon cas...
Messages postés
32514
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mai 2021
3 492
https://developer.mozilla.org/fr/docs/Web/API/Element/setAttribute
required .. c'est un attribut
pattern ... c'est un attribut
Ce qui se trouve après le = .. c'est la value ...
Ah d'accord je ne savais pas que c'était deux attributs différents du coup j'ai modifié le code :

document.getElementById('obligation').setAttribute("required");
  document.getElementById('obligation').setAttribute("pattern", "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}");
  
  document.getElementById('obligation2').setAttribute("required");


j'ai toujours aucune valeur qui est prise en compte je ne comprends pas...
Messages postés
32514
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mai 2021
3 492
Quand tu examines le code html de ta page une fois ton code js exécuté ... que vois tu au niveau de tes champs ?
Les attributs se sont ajoutés ?
Tu as vidé le cache de ton navigateur ?
Tu n'as pas d'erreur dans la console ?
Merci pour tout, ton aide m'a été très utile en faite j'ai trouvé il fallait que je fasse de cette manière :
document.getElementById('obligation').setAttribute("required", "");
  document.getElementById('obligation').setAttribute("pattern", "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}");


Si je mettais pas ("required", "") ça ne marchait pas. Du coup même s'il n'y a aucune valeur il faut mettre des guillemets pour le renseigner...
Je vais marquer le sujet comme étant résolu !