Comment rajouter du contenu dans une balise

Résolu/Fermé
QD - 4 mai 2021 à 17:03
 QD - 5 mai 2021 à 10:07
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

jordane45 Messages postés 38369 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 janvier 2025 4 722
4 mai 2021 à 17:42
Bonjour
Ce n'est pas innerHTML qu'il faut utiliser mais l'ajout d'attributs à ton élément input.
1
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...
0
jordane45 Messages postés 38369 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 janvier 2025 4 722
5 mai 2021 à 09:52
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 ...
0
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...
0
jordane45 Messages postés 38369 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 janvier 2025 4 722
5 mai 2021 à 10:03
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 ?
0
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 !
0