Mon problème: le bouton du bas (qui doit être désactivé/réactivé à la demande) commence bien de façon actif mais quand je l'ai désactivé, il ne peut plus être réactivé.
De plus le bouton1 censé le réactiver, ne fait que le désactiver.
Un grand merci pour votre aide, je bute depuis un petit moment...
Mon problème: le bouton du bas (qui doit être désactivé/réactivé à la demande) commence bien de façon actif mais quand je l'ai désactivé, il ne peut plus être réactivé.
De plus le bouton1 censé le réactiver, ne fait que le désactiver.
Un grand merci pour votre aide, je bute depuis un petit moment...
Moi j'avais fait comme ça tout fonctionnait parfaitement, essai ça devrait être bon.
Ps : quand tu fais un message les onglets du haut sur une ligne tu as "paragraphe" "Taille" "G" " I" " A" etc. avec ta souris va sur cette ligne, l'avant dernier bouton est la pour insérer du code, tu choisis d'abord le langage dans la liste déroulante puis tu colles ton code. ça donne ce que j'ai mis plus haut
Un grand, grand merci, Parad0xJ ! Ça marche! j'avais essayé beaucoup de choses mais pas cela...
Merci aussi de m'avoir montré comment mettre du code dans mon message... Je voulais chercher sur le forum l'explication mais mon début de semaine a été haut en couleur et je n'ai pas eu le temps. Tu m'apportes la réponse sur un plateau !
Je viens sur le forum car j'ai des difficultés à réaliser l'activité 2 du MOOC. Je n'arrive pas à insérer des éléments dans le div #gauche de l'écran.
//Création des nouveaux éléments
var contenulabel = $('#entreelabel').val();
$('#oklabel').on("click", function(){
$('<span>'+contenulabel+'</span>').prependTo($('#gauche'));
$('#reslabel').hide();
});
Quand je clique sur le bouton #oklabel, le formulaire reslabel disparaît comme il faut, mais son contenu n'apparaît pas dans la partie gauche. Pourtant je pense avoir raison en enregistrant le contenu dans une variable ?
J'ai également essayé avec $('#gauche').prepend($('<span>'+contenulabel+'</span>')), ça ne fonctionne pas non plus. J'insère si dessous mon code au complet.
je ne suis vraiment pas une spécialiste et ce TP m'avait donné du fil à retordre... Je te donne une ou des idées mais cela vaut peut-être peu de choses.
D'abord, je suis étonnée que tu mette prepend et pas append car, quand cela marchera, tu insèreras tes nouveautés toujours au début et pas en descendant.
D'autre part, tu as écris "J'ai également essayé avec $('#gauche').prepend($('<span>'+contenulabel+'</span>')), ça ne fonctionne pas non plus." Il me semble qu'il ne faut pas de $ après le prepend, c'est-à-dire $('#gauche').prepend('<span>'+contenulabel+'</span>')
Ce n'est pas grand chose et, en plus, ton message date d'il y a qq jours, alors ma réponse est sans doute décalée. Mais peut-être cela t'aidera!
Je viens tout juste de trouver la réponse à ma question, mais ta remarque sur ma syntaxe m'a bien aidé.
En réalité ce n'est pas ma fonction qui clochait mais mon code html : j'avais enveloppé mes formulaires dans une balise <form> en voulant trop bien faire. Sans, tout fonctionne.
Voilà, une bonne semaine de perdue pour pas grand chose !
Je suis sur l'activité 1 qui me prend terriblement du temps. Le problème? J'arrive à tous insérer (label, input, boutton) à la partie gauche. Seul bémol je n'arrive pas à réitérer l'action, c'est-à-dire insérer une deuxième puis une troisième ligne comme demandé. Quelqu'un peut-il m'indiquer l'algo à suivre?
Je suis actuellement dans le meme cas, le nom du label s'affiche bien dans la partie gauche mais quand je saisie un nouveau label il le remplace ce qui fait que je ne peux pas en ajouter plusieurs.
// Prevoir aussi le lien vers un CDN jQuery
$(function () {
$('#droite').append('<hr>');
// Keep buttons on variables
var button = $('button');
var button1 = $('button:eq(0)'); // Label (select button elt that has index 0)
var butotn2 = $('button:eq(1)'); // Zone de texte
var button3 = $('button:eq(2)'); // Bouton
// Fonction to add Form
function addForm(label) {
$("hr").after("<form></form>");
$("form").
append(label).
append("<input type='text' id='text'>").
append("<input type='button' value='OK' id='ok'>");
}
// Handling label button
button1.click(function() {
$("form").innerHTML = "";
addForm("Texte du label");
$("#ok").click(function () {
var name = $("input").val();
$("#gauche").append("<span><label for='name'></span>");
$("label").text(name);
$("form").remove();
//submit();
console.log(name);
});
});
butotn2.click(function () {
addForm("id de la zone de texte");
$("#ok").click(function () {
//var name = $("input").val();
$("span").append("<input type='text' id='nom'>");
$("form").remove();
});
});
button3.click(function () {
addForm("Texte du boutton");
$("#ok").click(function () {
var name = $("input").val();
$("button").insertAfter("span");
$("#gauche button").text(name);
$("form").remove();
});
});
});
au premier à bord, je ne comprend pas ce que vient faire le "for" à la ligne 30. Essayes le code d'Emma20
Sinon essayes de simplifier ton code comme ceci, ca pourras peut-être mieux t'éclairer:
déjà pour les trois boutons ce n'est pas la peine de mettre toutes ces variables, tu n'as qu'a mettre des id dans les balises button partie html.
ensuite partie jquery , tu peux directos commencer à écrire dans la fonction principale: $('#button1').click(function(){...}); ce sera le même shéma pour les deux autres boutons.
Si tu n'arrives toujours pas j'essayerai de t'aider d'avantage. Bon courage!!
@Emma20: je ne vois vraiment pas un grand intérêt à cette démarche outre le fait que je peux gagner une ligne de moins.
@lunita13: En html, l'élément label est suivi de la propriété "for". Si j'ai qtocké ces boutons dans les variables c'est juste parce que je veux gagner en performance.
Le code marche très bien. Ce que je n'arrive pas à faire c'est de réitérer l'action pour en créer un deuxième élément du formulaire puis un troisième, etc.
j'ai commencé le cours de JQuery aujourd'hui(pour des besoins immédiats) et je dois dire que je suis perdu au premier abord. Pour commencer le lien de téléchargement est un petit peu bizarre du coup j'me suis tourné vers le cours Introduction à JQuery qui à mes yeux ne dit rien de spécial même pour un gros débutant comme moi.
Cependant j'ai une remarque: cette ligne de code se trouvant dans le chapitre selectionnez des éléments
$("li#premier + li")
est-ce la spécificité JQuery ou c'est du pur CSS si c'est le dernier cas il y a une erreur puisque en CSS le code
li+li
selectionne tous les éléments li sauf le premier élément.
Esperant être éclaircis merci
L'important ce n'est pas d'être grand mais c'est être à la hauteur
@Bam92 ce code ne sélectionne pas le premier li de la liste ce qui me perturbe c'est que c'est dit dans le cours que cette ligne sélectionne l'élément frère qui suit immédiatement l'élément spécifié c'est-à-dire le deuxième li or que non ce code sélectionne tous les frères li du prémier élements li.
En plus pour le téléchargement de la bibliothèque sur le lien du site officiel donné me donne ça que devrais-je prendre ?
https://code.jquery.com/
L'important ce n'est pas d'être grand mais c'est être à la hauteur
@Bam92 ce code ne sélectionne pas le premier li de la liste ce qui me perturbe c'est que c'est dit dans le cours que cette ligne sélectionne l'élément frère qui suit immédiatement l'élément spécifié c'est-à-dire le deuxième li or que non ce code sélectionne tous les frères li du prémier élements li.
voilà j'ai tenté de créer un formulaire en m'inspirant de l'activité générer un formulaire.. je pars donc avec trois boutons de base, qui permettent à l'utilisateur de créer son formulaire comme il le souhaite, mon problème est que quand j'appuie sur bouton, un champ de texte et un bouton ok se créé, cependant quand je veux récupérer la valeur entrer par l'utilisateur dans le champ de texte input, ca ne fonctionne pas..
j'ai essayé plusieurs manières en full js ou avec le jquery et je n'y arrive pas.. aucun message d'erreur dans la console, aucun message non plus renvoyant la valeur, aucune alert..
@VictorPolfliet Si tu n'arrives pas à récupérer la valeur, c'est parce qu'au chargement du script, ton bouton n'existe pas encore. Tu dois mettre l'événement click dessus après sa création.
Je suis sur l'activité 1 qui me prend terriblement du temps. Le problème? J'arrive à tous insérer (label, input, boutton) à la partie gauche. Seul bémol je n'arrive pas à réitérer l'action, c'est-à-dire insérer une deuxième puis une troisième ligne comme demandé. Quelqu'un peut-il m'indiquer l'algo à suivre?
Merci d'avance.
Hey! T'as réussi a trouver le probleme? J'ai le même souci.
J'arrive a tout créer mais je n'arrive pas a dupliquer. De plus, apres l'avoir utilisée une fois, la zone de texte input s'affiche lorsque je clique sur Label ! Comme si elle prenait le dessus sur le code précédent!
$("form").hide();
$("#label").on("click", function () {
$("form label").text("Texte du label :");
$("form input").attr("type", "text");
$("form").show();
$("#ok").on("click", function (e) {
$("span").text($("#texteLabel").val());
e.preventDefault();
});
});
$("#zoneDeTexte").on("click", function () {
$("label").text("id de la zone de texte :");
$("form").show();
$("#texteLabel").attr("type", "text");
$("#ok").on("click", function (e) {
$("span:last").after("<input/>" + "<br>");
e.preventDefault();
});
var newId = $("#texteLabel").val();
$("#texteLabel").attr("id", "newId");
});
$("#bouton").on("click", function () {
$("<button>Valider</button>").insertAfter("#gauche input:last");
});
J'en suis à l'activité 3 du cours et il y a quelque chose qui m'échappe dans l'énoncé. j'ai retrouvé le post d'Atipika qui avait exactement le même problème et qui le décrit bien.
Bonsoir, je travaille sur l'activité_partie3 et l'un des énoncés me pose problème:
Il est demandé de créer 1 bouton "annuler" qui permettrait "à l'utilisateur d'annuler l'insertion d'un label, d'une zone de texte ou d'un bouton". Je n'arrive pas à savoir ce que le bouton doit faire exactement, en effet si on veut annuler ce qui vient d'être créé (donc après le clic sur le bouton "ok", donc après la disparition en fondu de la div qui contient ce bouton "annuler") c'est compliqué puisqu'il n'y a plus le bouton "annuler"...Et si on veut juste remettre à zéro la valeur de l'input:text il suffit d'effacer avec le clavier puisque ça n'a pas été envoyé...
Bref je ne sais pas si je suis très claire et si quelqu'un peut m'aider mais là je galère vraiment, je suis en boucle sur ce problème et ça m'empêche de rendre l'exercice, que j'ai fini en dehors de ce "détail"!
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
" Si vis pacem, para bellum "