juppinger: Leerzeichen per JS abfragen

Hallo zusammen,

ich habe eine Frage zum Leerzeichen ( ).

Ich habe ein Array, welches befüllt wird durch eine User-Aktion im Browser:

z.B.:

Aktion:
<select name="aktion" id="aktion">
<option value="&nbsp;" selected>- Feldinhalt leeren -</option>
<option value="d">Defekt</option>
<option value="i">Instant</option>
</select>

Also.. zuerst wählt ein User das select-Feld aus (Beispiel: "-Feldinhalt leeren-"). Somit wird der 'Value' des Feldes auf "&nbsp;" gesetzt.

Jetzt klickt er auf bestimmte Elemente im Browser.
Bei jedem Klick wird ein entsprechendes Array aktualisiert mit dem im Select-Feld vorher ausgewählten Value (Value= "&nbsp;")...:

a = document.getElementById('aktion').value;
// Array aktualisieren
arrKontoFelder[0][tag] = a;

Hier würde jetzt bei ausgewählter Select-Box ("- Feldinhalt leeren -") in den Array eben das zugehörige Value geschrieben werden ("&nbsp;" bzw. <Leerzeichen>).

Wenn ich in einer anderen JS-Funktion den Wert abfragen will, komme ich nicht richtig an den Wert ran...

1.) KLAPPT NICHT:

if(arrKontoFelder[0][tag] == '&nbsp;') temp = temp + ';'; else temp = temp + arrKontoFelder[0][tag] + ';'

2.) KLAPPT AUCH NICHT:

if(arrKontoFelder[0][tag] == ' ') temp = temp + ';'; else temp = temp + arrKontoFelder[0][tag] + ';'

Wie wird denn der Value "&nbsp;" im Array gespeichert (als welches "(Sonder-)Zeichen" und wie kann ich das dann abfragen?

Danke für jeden Tipp.

Gruß,
juppinger

  1. Hallo,

    ich habe eine Frage zum Leerzeichen (&nbsp;).

    das ist kein gewöhnliches Leerzeichen (0x20), sondern ein geschütztes Leerzeichen (0xA0).

    Ich habe ein Array, welches befüllt wird durch eine User-Aktion im Browser:
    [...]
    Hier würde jetzt bei ausgewählter Select-Box ("- Feldinhalt leeren -") in den Array eben das zugehörige Value geschrieben werden ("&nbsp;" bzw. <Leerzeichen>).

    if(arrKontoFelder[0][tag] == '&nbsp;')

    Hier vergleichst du den Feldinhalt mit dem aus 6 Zeichen bestehenden String "&nbsp;", der aber mit einem Leerzeichen nicht das Geringste zu tun hat. Mit der HTML-codierten Entity-Referenzen hat Javascript nichts am Hut.

    if(arrKontoFelder[0][tag] == ' ')

    Schon richtiger, aber du hast ja keine normalen, sondern geschützte Leerzeichen verwendet. Also frage auch auf dieses Zeichen ("\xA0") ab.

    So long,
     Martin

    --
    Man sollte immer wissen was man sagt
     - aber auf keinen Fall alles sagen, was man weiß.
  2. Hello out there!

    Wie wird denn der Value "&nbsp;" im Array gespeichert (als welches "(Sonder-)Zeichen" und wie kann ich das dann abfragen?

    Als geschütztes Leerzeichen ' ' U+00A0 – optisch nicht vom Leerzeichen ' ' U+0020 zu unterscheiden, aber es ist ein anderes Zeichen, deshalb:

    2.) KLAPPT AUCH NICHT:
    if(arrKontoFelder[0][tag] == ' ') temp = temp + ';'; else temp = temp + arrKontoFelder[0][tag] + ';'

    Variante 1:

    1.) KLAPPT NICHT:
    if(arrKontoFelder[0][tag] == '&nbsp;') temp = temp + ';'; else temp = temp + arrKontoFelder[0][tag] + ';'

    Kann nicht klappen, denn in JavaScript ist '&nbsp;' die Folge der Zeichen '&', 'n', 'b', 's', 'p', ';'. [</archiv/2007/6/t154640/#m1006610>]

    Du musst das geschützte Leerzeichen dem Kontext entsprechend angeben; der Kontext ist JavaScript. [</archiv/2007/4/t150931/#m981321>]

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  3. Hallo,

    ich habe eine Frage zum Leerzeichen (&nbsp;).

    Das ist kein normales Leerzeichen. HTML behandelt es als die Entität eines geschützten Leerzeichens. (Dazu gibt es ja schon Antworten)
    [...]

    Also.. zuerst wählt ein User das select-Feld aus (Beispiel: "-Feldinhalt leeren-"). Somit wird der 'Value' des Feldes auf "&nbsp;" gesetzt.

    Da stellt sich für mich zumindest die Frage, warum du bei der ersten <option> das Value-Attribut nicht leer lässt (<option value="">). Dann hättest du das ganze Problem gar nicht...

    Grüße,
    Willi