php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.12.2010, 17:36  
Erfahrener Benutzer
 
Benutzerbild von bitsnack
 
Registriert seit: 01.08.2010
Beiträge: 352
PHP-Kenntnisse:
Fortgeschritten
bitsnack befindet sich auf einem aufstrebenden Ast
bitsnack eine Nachricht über ICQ schicken bitsnack eine Nachricht über MSN schicken bitsnack eine Nachricht über Skype™ schicken
Standard [Erledigt] Array-Element undefined oder auch nicht...

Hallo,

Ich bin in Javascript nicht wirklich fortgeschritten weil ich es beinahe nie benötige. Doch jetzt brauche ich es und komme nicht weiter.

Problem ist folgendes: "if (typeof resetted[this] === 'undefined')" greift nicht (mit oder ohne '==='), obwohl eine Ausgabe von "typeof resetted[this]" undefined anzeigt.

PHP-Code:
var resetted = [];

jQuery(document).ready(function() {
    
jQuery('.focus').focus();
    
    
jQuery('.reset').focus(function() {
        if (
typeof resetted[this] === 'undefined') {
            
resetted[this] = jQuery(this).val();
            
            
jQuery(this).val('');
        }
    });
    
    
jQuery('.reset').focusout(function() {
        if (
jQuery(this).val() == '' && typeof resetted[this] !== 'undefined') {
            
jQuery(this).val(resetted[this]);
        }
    });
}); 
Für das Objekt als Array-Key hätte ich mich in PHP wohl auch schon längst auf die Streckbank gespannt. Verzeiht mir die Frage, aber gibt es bessere Möglichkeiten, bzw. geht das so auch in Ordnung?

Ich hoffe ihr könnt mir einen Tipp geben, wahrscheinlich ist es wieder irgendein dämlicher Fehler wie ich ihn in Javascript scheinbar öfters mache: Zeichen vergessen, Logik unlogisch oder ähnliches...

Vielen Dank im Voraus

bitsnack
bitsnack ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.12.2010, 17:49  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Also ein Objekt als Propertybezeichner, ob das so eine gute Idee ist? Zumal das syntaktisch irgendwo auch falsch ist:

var resetted = [];

erzeugt ein Array. Es gibt in JS aber keine assoz. Arrays, sondern nur Objekte (die man aber mit [] ansprechen kann). Die Syntax, um ein Objekt anzulegen wäre aber

var resetted = {};

Allerdings, wie gesagt, der Versuch resetted.{deinObject} zu erstellen, kann eigentlich nur schiefgehen.
Warum benutzt Du nicht bspw. .data() oder eine Property des Objektes?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.12.2010, 18:09  
Erfahrener Benutzer
 
Benutzerbild von bitsnack
 
Registriert seit: 01.08.2010
Beiträge: 352
PHP-Kenntnisse:
Fortgeschritten
bitsnack befindet sich auf einem aufstrebenden Ast
bitsnack eine Nachricht über ICQ schicken bitsnack eine Nachricht über MSN schicken bitsnack eine Nachricht über Skype™ schicken
Standard

Vielen Dank schonmal.
Komischerweise funktionierte das ganze auch solange es "... !== 'undefined'" hiess.

Habe es jetzt mit .data() gelöst, hoffe es ist syntaktisch jetzt so korrekt:

PHP-Code:
jQuery(document).ready(function() {
    
jQuery('.reset').focus(function() {
        if (
typeof jQuery(this).data('oldValue') === 'undefined') {
            
jQuery(this).data('oldValue'jQuery(this).val());
            
            
jQuery(this).val('');
        }
    });
    
    
jQuery('.reset').focusout(function() {
        if (
jQuery(this).val() == '' && typeof jQuery(this).data('oldValue') !== 'undefined') {
            
jQuery(this).val(jQuery(this).data('oldValue'));
            
jQuery(this).removeData('oldValue');
        }
    });
    
    
jQuery('.focus').focus();
}); 
bitsnack ist offline   Mit Zitat antworten
Alt 21.12.2010, 18:17  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

FYI: Die String-Notation ist falsch. Es heißt undefined - das existiert als vordefinierter „Typ“.
"undefined" oder 'undefined' wären Textliterale, die eben dieses Wort enthalten.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 21.12.2010, 18:19  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Stimmt nicht - typeof liefert die Beschreibung des Typs.
Zitat:
Der Operator typeof wertet den nachfolgenden Operanden hinsichtlich seines Typs aus. Der Rückgabewert dieses Operators ist ein String, den Sie abfragen können.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.12.2010, 18:21  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

@bitsnack: Warum setzt Du den data() dann nicht gleich einmalig für alle, statt stetig die if()-Bedingung abzuprüfen? Bzw. was genau soll der Code überhaupt bezwecken?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.12.2010, 18:29  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Stimmt nicht - typeof liefert die Beschreibung des Typs.
OK, hast recht - typeof liefert einen Stringwert.

Aber Undefined gibt es trotzdem als vordefinierten Typ, siehe ECMA-262
Zitat:
8.1 The Undefined Type
The Undefined type has exactly one value, called undefined. Any variable that has not been assigned a value
has the value undefined.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 21.12.2010, 18:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ja klar, deswegen liefert der Operator es ja
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.12.2010, 18:44  
Erfahrener Benutzer
 
Benutzerbild von bitsnack
 
Registriert seit: 01.08.2010
Beiträge: 352
PHP-Kenntnisse:
Fortgeschritten
bitsnack befindet sich auf einem aufstrebenden Ast
bitsnack eine Nachricht über ICQ schicken bitsnack eine Nachricht über MSN schicken bitsnack eine Nachricht über Skype™ schicken
Standard

Das ganze soll für jedes Feld welches die Klasse .reset hat bei focus den Inhalt zurücksetzen und bei focusout wieder setzen, nur dann nicht wenn man selbst etwas ins Feld geschrieben hat.
bitsnack ist offline   Mit Zitat antworten
Alt 21.12.2010, 19:40  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von bitsnack Beitrag anzeigen
nur dann nicht wenn man selbst etwas ins Feld geschrieben hat.
Also möchtest du einfach nur den Defaultwert, der bei der Auslieferung des Dokumentes im HTML als value gesetzt ist, wieder herstellen ...?

Falls ja: http://de.selfhtml.org/javascript/ob...#default_value
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mehrdimensionales array inhalte tauschen pidaman PHP Tipps 2010 18 27.08.2010 16:58
[Erledigt] Problem bei update mit array feldern fulltilt PHP Tipps 2010 6 13.02.2010 00:59
PHPLot von der Datenbank zum mehrdimensionalen Array mannimammut PHP Tipps 2009 1 15.12.2009 10:40
[Erledigt] Tabellen die sich selbst referenzieren Squall PHP Tipps 2009 19 04.08.2009 21:33
Array umwandeln von zwei zu mehrdimensional erselbst PHP Tipps 2009 6 02.04.2009 23:30
Undefined variable Undefined property: block xxJJxx PHP Tipps 2008 16 05.08.2008 15:30
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
jquery undefined abfangen, array undefined, javascript typeof array, javascript array undefiniert, jquery element undefined, jquery data () undefined, javascript undefined array, array js undefined abfangen, jquery object in array undefined, jquery typeof element undefined, js array aber undefined, jquery undifined abfangen, array undefined abfangen, php undefined key abfangen, javascript funktion liefert array nicht zurück undefined, jquery php array auslesen, php arrayelement defined, jquery aus array abfragen, array for undefined javascript, php element undefined

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum