Je suis en train de faire un formulaire ou l'ont peut insérer du zCode dans le textarea ( Voir ici )
Bref j'aimerais savoir comment faire pour que quand l'utilisateur clique en dehors du select il se mette automatiquement sur l'option muni d'un selected="selected"
J'espère avoir été assez clair dans mon problème. Merci de votre aide précieuse
J'ai essayé de comprendre ce que tu voulais, mais jsuis pas arrivé
Tu veux que le select se mettre sur le selected par défaut lorsqu'on clique pas sur le select ? J'ai dû mal comprendre. Doit sûrement y avoir un intérét, mais jvois pas lequel. Et si on voit pas à quoi ça sert on pourra pas t'aider :s
Bref j'aimerais savoir comment faire pour que quand l'utilisateur clique en dehors du select il se mette automatiquement sur l'option muni d'un selected="selected"
Pourtant je l'avais mit
Mais bon :
L'utilisateur clique sur Titre 1 (liste déroulante)
Ca insère un texte dans le textarea
La liste déroulante se remet à l'endroit initial (selected="selected")
C'est l'élément en rouge qui pose problème. Comment le remettre à zéro sous l'événement OnBlur ? [Ou OnChange].
Ca c'est si tes options par défaut ont value="none". Sinon y'a plus simple. Si toutes tes options par défaut ont la position 0 dans le select, t'as qu'à juste mettre :
Non cela ne marche pas. Je vais voir cela de près au cas où.
Voici mon script editeur.js [Seulement la fonction insertTag. J'ai viré le preview et le view.
function insertTag(startTag, endTag, textareaId, tagType) {
var field = document.getElementById(textareaId);
var scroll = field.scrollTop;
field.focus();
/* === Partie 1 : on récupère la sélection === */
if (window.ActiveXObject) {
var textRange = document.selection.createRange();
var currentSelection = textRange.text;
} else {
var startSelection = field.value.substring(0, field.selectionStart);
var currentSelection = field.value.substring(field.selectionStart, field.selectionEnd);
var endSelection = field.value.substring(field.selectionEnd);
}
/* === Partie 2 : on analyse le tagType === */
if (tagType) {
switch (tagType) {
case "lien":
endTag = "</lien>";
if (currentSelection) { // Il y a une sélection
if (currentSelection.indexOf("http://") == 0 || currentSelection.indexOf("https://") == 0 || currentSelection.indexOf("ftp://") == 0 || currentSelection.indexOf("www.") == 0) {
// La sélection semble être un lien. On demande alors le libellé
var label = prompt("Quel est le libellé du lien ?") || "";
startTag = "<lien url=\"" + currentSelection + "\">";
currentSelection = label;
} else {
// La sélection n'est pas un lien, donc c'est le libelle. On demande alors l'URL
var URL = prompt("Quelle est l'url ?");
startTag = "<lien url=\"" + URL + "\">";
}
} else { // Pas de sélection, donc on demande l'URL et le libelle
var URL = prompt("Quelle est l'url ?") || "";
var label = prompt("Quel est le libellé du lien ?") || "";
startTag = "<lien url=\"" + URL + "\">";
currentSelection = label;
}
break;
case "citation":
endTag = "</citation>";
if (currentSelection) { // Il y a une sélection
if (currentSelection.length > 30) { // La longueur de la sélection est plus grande que 30. C'est certainement la citation, le pseudo fait rarement 20 caractères
var auteur = prompt("Quel est l'auteur de la citation ?") || "";
startTag = "<citation nom=\"" + auteur + "\">";
} else { // On a l'Auteur, on demande la citation
var citation = prompt("Quelle est la citation ?") || "";
startTag = "<citation nom=\"" + currentSelection + "\">";
currentSelection = citation;
}
} else { // Pas de selection, donc on demande l'Auteur et la Citation
var auteur = prompt("Quel est l'auteur de la citation ?") || "";
var citation = prompt("Quelle est la citation ?") || "";
startTag = "<citation nom=\"" + auteur + "\">";
currentSelection = citation;
}
break;
}
}
/* === Partie 3 : on insère le tout === */
if (window.ActiveXObject) {
textRange.text = startTag + currentSelection + endTag;
textRange.moveStart("character", -endTag.length - currentSelection.length);
textRange.moveEnd("character", -endTag.length);
textRange.select();
} else {
field.value = startSelection + startTag + currentSelection + endTag + endSelection;
field.focus();
field.setSelectionRange(startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length);
}
field.scrollTop = scroll;
}
function preview(textareaId, previewDiv) {
var field = textareaId.value;
if (document.getElementById('previsualisation').checked && field) {
var smiliesName = new Array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
var smiliesUrl = new Array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
var smiliesPath = "http://www.siteduzero.com/Templates/images/smilies/";
field = field.replace(/&/g, '&');
field = field.replace(/</g, '<').replace(/>/g, '>');
field = field.replace(/\n/g, '<br />').replace(/\t/g, ' ');
field = field.replace(/<souligne>([\s\S]*?)<\/souligne>/g, '<u>$1</u>');
field = field.replace(/<gras>([\s\S]*?)<\/gras>/g, '<strong>$1</strong>');
field = field.replace(/<italique>([\s\S]*?)<\/italique>/g, '<em>$1</em>');
field = field.replace(/<barre>([\s\S]*?)<\/barre>/g, '<del>$1</del>');
field = field.replace(/<lien>([\s\S]*?)<\/lien>/g, '<a href="$1">$1</a>');
field = field.replace(/<lien url="([\s\S]*?)">([\s\S]*?)<\/lien>/g, '<a href="$1" title="$2">$2</a>');
field = field.replace(/<image>([\s\S]*?)<\/image>/g, '<img src="$1" alt="Image" />');
field = field.replace(/<citation nom=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>');
field = field.replace(/<citation lien=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>');
field = field.replace(/<citation nom=\"(.*?)\" lien=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$2">Citation : $1</a></span><div class="citation2">$3</div>');
field = field.replace(/<citation lien=\"(.*?)\" nom=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$1">Citation : $2</a></span><div class="citation2">$3</div>');
field = field.replace(/<citation>([\s\S]*?)<\/citation>/g, '<br /><span class="citation">Citation</span><div class="citation2">$1</div>');
field = field.replace(/<taille valeur=\"(.*?)\">([\s\S]*?)<\/taille>/g, '<span class="$1">$2</span>');
field = field.replace(/<flottant valeur=\"(.*?)\">([\s\S]*?)<\/flottant>/g, '<div class="float_$1">$2</div>');
field = field.replace(/<position valeur=\"(.*?)\">([\s\S]*?)<\/position>/g, '<div class="align_$1">$2</div>');
field = field.replace(/<titre1>([\s\S]*?)<\/titre1>/g, '<h2>$1</h2>');
field = field.replace(/<titre2>([\s\S]*?)<\/titre2>/g, '<h3>$1</h3>');
for (var i=0, c=smiliesName.length; i<c; i++) {
field = field.replace(new RegExp(" " + smiliesName[i] + " ", "g"), " <img src=\"" + smiliesPath + smiliesUrl[i] + "\" alt=\"" + smiliesUrl[i] + "\" /> ");
}
document.getElementById(previewDiv).innerHTML = field;
}
}
Ben ... Le fichier js (pas du PHP ) s'occupe d'introduire le tag correspondant. Mais à la limite on s'en fiche du js.
Le HTML lui contient un formulaire qui quand on clique sur un élément d'un select ça insère le value correspondant.
En gros quand on clique ça envoi au js les tags à introduire et si c'est un lien / citation ça demande à l'utilisateur via un prompt() la citation / lien / libelle / auteur.
Je cherche donc un code permettant d'afficher l'élément selected dans le select - un reset du select quoi -
select.onchange = ( function ( ) {
var lastIndex = 0;
return function ( ) {
var options = this.options;
options[ lastIndex ].removeAttribute( "selected" );
options[ lastIndex = this.selectedIndex].setAttribute( "selected", "selected" );
};
}( ) );
</span>
Reset du formulaire complet
select.onchange = ( function ( ) {
var form = select;
while ( form.tagName.toLowerCase( ) !== "form" ) {
form = form.parentNode;
if ( !form ) {
throw new Error( "No form parent found!" );
}
}
return function ( ) {
form.reset( );
};
}( ) );
Reset du select seul
select.onchange = function ( ) {
select.selectedIndex = 0;
};
Bien entendu, vu que tu as déjà des events sur ces éléments, faut les ajouter avec un addEvent quelconque ou alors intégrer ça à ta fonction suivant comment tu mets tes events.
× 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.