Markus: anzahl gewählte zeichen in select multiple

hallo!

ich habe folgendes auswahlmenü:

<select name="arrayy[]" size="3" multiple onchange="check">
  <option value="+++">3</option>
  <option value="++">2</option>
  <option value="+">1</option>
</select>

und ich möchte gerne prüfen, aus wie vielen zeichen die selektierten options nun schon bestehen.

die funktion check sieht so aus:

function check() {
  var letters = 0, input_length = 0;
  var typlist = new Array ();
  for (var i=0; i < document.form.arrayy.options.length; i++) {
    if (document.form.arrayy[i].selected) {
      typlist.push(document.form.arrayy[i].value);
    }
  }
var message = typlist.join();
for (var i=1; i <= message.length; i++) {
  if (letters > 4) {
    break;
  }
  letters++;
  input_length = i;
}

das ganze funktionierte auch perfekt, bis ich aus:

<select name="arrayy" ...

ein:

<select name="arrayy[]" ...

gemacht habe. dies brauche ich aber, da ich die eingaben mit php auslese. wie muss ich das javascript verändern, damit es nun doch klappt.

die fehlermeldung lautet:

'document.form.arrayy.options.length' ist Null oder Kein Objekt

vielen dank für eure hilfe.

gruß

markus

  1. Hallo.

    Ich hab mir das Script zwar nicht genau angesehn, aber die Änderung von

    document.form.arrayy.options.length

    in document.form.elements["arrayy[]"].options.length, bzw. von arrayy in elements["arrayy[]"] muss (vermutlich) an mehreren Stellen vorgenommen werden.

    Gruß
    Norbert

    1. »»Änderung von

      document.form.arrayy.options.length
      in document.form.elements["arrayy[]"].options.length

      Gruß
      Norbert

      hallo norbert,

      vielen dank! folgendes hat sich als funktionsfähig herausgestellt:

      for (var i=0; i < document.form.elements["arrayy[]"].options.length; i++) {
       if (document.form.elements["arrayy[]"].options[i].selected) {
        typlist.push(document.form.elements["arrayy[]"].options[i].value);
       }
      }

      gruß

      markus