Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

JS-Problem: multiple-Auswahl löschen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
blinks
PostRank 4
PostRank 4
Beiträge: 155
Registriert: 25.01.2004, 12:37

Beitrag von blinks » 05.04.2006, 17:07

Hi,

ich habe folgendes Formular:

Code: Alles auswählen

<form action="" name="filter" method="post">
   <select name="filter_zutaten&#91;&#93;" size="4" multiple>
      <option value="0">egal</option>
      <option value="1" >Salami</option>
      <option value="2" selected>Schinken</option>
      <option value="3" selected>Tomaten</option>
   </select>
   <input type="hidden" value="1" name="filter_aktiv" />
   <input type="submit" value="Filtern..." />
   <input type="button" value="Zur&uuml;cksetzen" onclick="resetFilter&#40;&#41;" />  
</form>
Die Funktion resetFilter() schaut wie folgt aus:

Code: Alles auswählen

function resetFilter&#40;&#41; &#123;
   document.filter.filter_zutaten.blur&#40;&#41;;
   document.filter.submit&#40;&#41;;
&#125;
Bei einem Klick auf den Button 'Zurücksetzen' sollen also alle Auswahlen aufgehoben (unselected) werden und ein Submit soll angeleihert werden. Bei Strings funktioniert's einwandfrei mit

Code: Alles auswählen

document.filter.filter_tracking.value='';
Aber filter_zutaten ist ein Array... Naja, lange rede kurzer Sinn: wie bekomme ich per JS alle Auswahlen gelöscht, bzw. unselected?!?

Vielen Dank schonmal!

EDIT:

mit

Code: Alles auswählen

document.filter.filter_zutaten.options&#91;&#93;.selected=false;
kommt

Code: Alles auswählen

Fehler&#58; document.filter.filter_zutaten has no properties
EDIT 2:

Code: Alles auswählen

<select name="filter_zutaten" size="4" multiple>
(also KEIN array) und die Sache funktioniert... Da aber eine Mehrfachauswahl möglich sein muss, brauche ich hier ein Array... Hilfeeee :cry:

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Ixion
PostRank 1
PostRank 1
Beiträge: 9
Registriert: 30.03.2006, 09:39

Beitrag von Ixion » 05.04.2006, 17:45

Hallo blinks,

versuchs mal mit der folgenden Schleife:

Code: Alles auswählen

function resetFilter&#40;&#41; &#123;  
	for &#40;var i = 0;i < document.filter.filter_zutaten.length;i++&#41;&#123;
		document.filter.filter_zutaten.options&#91;i&#93;.selected = false;
	&#125;
        document.filter.submit&#40;&#41;;
&#125; 
Ich habe allerdings auch noch den Namen von deinem Zutatenfeld verändert und das "[]" entfernt:

Code: Alles auswählen

<select name="filter_zutaten" size="4" multiple>
Ich hoffe, daß hilft weiter.

Grüsse Ixion

blinks
PostRank 4
PostRank 4
Beiträge: 155
Registriert: 25.01.2004, 12:37

Beitrag von blinks » 05.04.2006, 17:52

Ixion hat geschrieben:Ich habe allerdings auch noch den Namen von deinem Zutatenfeld verändert und das "[]" entfernt:

Hmmm, danke schonmal, aber das "[]" muss leider auf jedenfall bleiben, denn ich brauche in meinem Script ein Array und keinen String... :( Ich verzweifel langsam.... danke trotzdem!

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Ixion
PostRank 1
PostRank 1
Beiträge: 9
Registriert: 30.03.2006, 09:39

Beitrag von Ixion » 05.04.2006, 18:00

Das verstehe ich nicht so ganz. "filter_zutaten" ist doch lediglich der Name deines multiplen Select-Feldes. Durch das submit wird das Feld weitergegeben, unabhängig davon wie es heißt. Man kann also nach dem submit wieder mit einer Schleife auf die einzelnen Elemente zugreifen.

Hier ist eine kurze Anleitung dazu: https://www.dcljs.de/faq/antwort.php?An ... adioselect

blinks
PostRank 4
PostRank 4
Beiträge: 155
Registriert: 25.01.2004, 12:37

Beitrag von blinks » 05.04.2006, 18:04

leider wird, wenn ich das "[]" weglasse, NUR das erste markierte Element in "filter_zutaten" übergeben, ich möchte aber natürlich, dass ich in meinem Script alle ausgewählten Optionen erkennen und verarbeiten kann. Daher muss ich ein Array übergeben, welches man erzeugt, indem man "[]" anhängt...

Ixion
PostRank 1
PostRank 1
Beiträge: 9
Registriert: 30.03.2006, 09:39

Beitrag von Ixion » 05.04.2006, 19:15

Ich glaube, ich weiß jetzt was du meinst. Der folgende Code funktioniert bei mir:

Code: Alles auswählen

function resetFilter&#40;&#41; 
	  &#123;  
		for&#40;var i = 0;i < document.getElementsByName&#40;"filter_zutaten&#91;&#93;"&#41;&#91;0&#93;.length;i++&#41;
		&#123;
			document.getElementsByName&#40;"filter_zutaten&#91;&#93;"&#41;&#91;0&#93;.options&#91;i&#93;.selected = false;
		&#125;
		document.getElementsByName&#40;"filter_zutaten&#91;&#93;"&#41;&#91;0&#93;.options&#91;2&#93;.selected = true;
		document.getElementsByName&#40;"filter_zutaten&#91;&#93;"&#41;&#91;0&#93;.options&#91;3&#93;.selected = true;
   		document.filter.submit&#40;&#41;;
	  &#125; 

blinks
PostRank 4
PostRank 4
Beiträge: 155
Registriert: 25.01.2004, 12:37

Beitrag von blinks » 06.04.2006, 12:34

Code: Alles auswählen

      for&#40;var i = 0;i < document.getElementsByName&#40;"filter_zutaten&#91;&#93;"&#41;&#91;0&#93;.length;i++&#41;
      &#123;
         document.getElementsByName&#40;"filter_zutaten&#91;&#93;"&#41;&#91;0&#93;.options&#91;i&#93;.selected = false;
      &#125; 
Das funktioniert :) Danke Ixion!

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag