11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour.

Ne connaissant strictement rien au javascript, je fais appel à vous.
Donc, ce que je souhaiterai, c'est que, lorsqu'une personne a sélectionné un choix dans une liste déroulante et qu'il clique dessus, l'option principale (en l'occurrence le nom de la liste) reste sélectionné dans la liste.
Comme sur le SiteDuZero ou les forums PHPBB

Je vous passe mon code javascript et mon formulaire :
javascript.js
<script type="text/javascript">
function bbcode(bbdebut, bbfin) {
  var input = document.forms['form'].elements['textarea'];
  input.focus();
  /* pour l'Explorer Internet */
  if(typeof document.selection != 'undefined') {
    /* Insertion du code de formatage */
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = bbdebut + insText + bbfin;
    /* Ajustement de la position du curseur */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', -repfin.length);
    } else {
      range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
    }
    range.select();
  }
  /* pour navigateurs plus récents basés sur Gecko*/
  else if(typeof input.selectionStart != 'undefined')
  {
    /* Insertion du code de formatage */
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
    /* Ajustement de la position du curseur */
    var pos;
    if (insText.length == 0) {
      pos = start + bbdebut.length;
    } else {
      pos = start + bbdebut.length + insText.length + bbfin.length;
    }
    input.selectionStart = pos;
    input.selectionEnd = pos;
  }
  /* pour les autres navigateurs */
  else
  {
    /* requête de la position d'insertion */
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos)) {
      pos = prompt("Insertion à la position (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length) {
      pos = input.value.length;
    }
    /* Insertion du code de formatage */
    var insText = prompt("Veuillez entrer le texte à formater:");
    input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
  }
}
</script>


Formulaire :
<form id="form" name="form" method="post" action="">
  <p>
    <textarea name="textarea" id="textarea" cols="45" rows="5"></textarea>
</p>
      <input type="button" name="Submit" value="Gras" onclick="bbcode('[b]', '[/b]')"/>
      <input type="button" name="Submit2" value="Italique" onclick="bbcode('[i]', '[/i]')"/>
      <input type="button" name="Submit3" value="Souligner" onclick="bbcode('[u]', '[/u]')"/>
      <input name="button" type="button" onclick="bbcode('', '')" value="Lien" />
      <select id="alignement" onchange="bbcode('[aligne='+this.options[this.selectedIndex].value+']',
'[/aligne]');">
        <option class="opt_titre" selected="selected">Alignement</option>
        <option value="gauche">Gauche</option>
        <option value="centre">Centre</option>
        <option value="droite">Droite</option>
</select>
</form>

Modifié par Age (24 Jul 2008 - 16:37)
Je suppose qu'il faudrait ajouter ceci à la fin du onchange de la liste :
<code type="javascript">
this.selectedIndex=0;
</code>
QuentinC a écrit :
Je suppose qu'il faudrait ajouter ceci à la fin du onchange de la liste :
<code type="javascript">
this.selectedIndex=0;
</code>


Merci bien pour ton aide. C'est effectivement ce que je souhaitais faire.

Par contre, pourrais-tu me passer un code (je ne connais pas le JS) qui me permettrai de changer le contenue d'une liste déroulante en fonction d'une autre sachant que les options de la liste sont générées en php avec une base de données.

Merci d'avance
Salut,
Age a écrit :
Par contre, pourrais-tu me passer un code (je ne connais pas le JS) qui me permettrai de changer le contenue d'une liste déroulante en fonction d'une autre sachant que les options de la liste sont générées en php avec une base de données.

Au risque d'être rabat-joie, je t'invite à relire les règles du forum. Il ne s'agit pas ici de développer à ta place mais de t'aider lorsque du rencontres des problèmes au cours de ton apprentissage.
Surtout que ce que tu viens de demander a déjà été parcouru en long, en large et en travers, ici et ailleurs sur le web.
Fais une recherche google, tu devrais trouver ton bohnheur assez facilement.
Julien Royer a écrit :
Salut,

Au risque d'être rabat-joie, je t'invite à relire les règles du forum. Il ne s'agit pas ici de développer à ta place mais de t'aider lorsque du rencontres des problèmes au cours de ton apprentissage.


Je n'ai pas eu le temps d'apprendre le JS sinon, j'aurai cherché moi même et j'aurai posté un code que j'aurais fait moi même pour qu'il puisse être corrigé voir amélioré. Et je connais la règle du forum traitant de ça.

QuentinC a écrit :
Surtout que ce que tu viens de demander a déjà été parcouru en long, en large et en travers, ici et ailleurs sur le web.
Fais une recherche google, tu devrais trouver ton bohnheur assez facilement.


La recherche avec google, c'est la seconde chose que je fais après avoir essayé de trouver une solution ... Sauf qu'on ne tombe pas toujours sur les bonnes pages même si on utilise plusieurs mots clés...

Merci bien de votre précieuse aide.
Au plaisir de ne pas vous revoir quelque part sur internet.
Bye
Age a écrit :
Je n'ai pas eu le temps d'apprendre le JS

C'est dommage, car le but de ce forum est d'apporter une aide à ceux qui font un effort d'apprentissage. Si tu n'as pas le temps d'apprendre JavaScript, eh bien tu peux sous-traiter le développement JavaScript de ton projet.

Age a écrit :
Et je connais la règle du forum traitant de ça.

Donc tu postes en sachant que c'est contraire aux règles du forum? Félicitations. Ce sujet est clos.