![]() |
|
|
Themen-Optionen |
|
|
#1
|
|
Newbie
![]() Registriert seit: 04.11.2009
Ort: Sachsen
Beiträge: 65
Kamera: meine Augen :-)Verwendet: Photoimpakt, Swishmax und diverse andere |
jquery einzelne Elemente einer CSS Klasse auslesenHallo,
ich bin wieder am verzweifeln und brauche euer hilfe. Also ich möchte alle Elemente einer CSS- Klasse auswählen der kein Value Wert besitzt (Pflichtfelder im Formular). Also er soll alle inputs Felder die die Klasse "pflicht" haben und leer sind ein roten Rahmen verpassen. Z.B. habe ich vier Pflichtfelder in mein Formular: HTML-Code:
<form action="" method="post"> <input type="texteld" name=feld1" class="textfeld pflicht" /> <input type="texteld" name=feld2" class="textfeld pflicht" /> <input type="texteld" name=feld3" class="textfeld pflicht" /> <input type="texteld" name=feld4" class="textfeld pflicht" /> ... Geht das? ja ich weß ich könnte jeden eine ID verpassen, aber bei längeren Formularen wäre der Code elend lang... ich habe schon probiert mit: Code:
alert($(".pflicht").val());
Kann mir jemand helfen Danke im vorraus Esspresolia |
|
|
|
#2
|
|
PHP - Flex Programmierer
![]() ![]() Registriert seit: 18.12.2006
Ort: Schmallenberg
Beiträge: 526
Verwendet: CS6, Eclipse, IntelliJ IDEA 12, Flash Builder 4.7
|
Das wäre eine Lösung:
Code:
var classList =$('#divId').attr('class').split(/\s+/);
$.each( classList, function(index, item){
if (item === 'someClass') {
//do something
}
});
|
|
|
|
#3
|
|
Posting-Frequenz: 14µHz
![]() ![]() ![]() ![]() ![]() Registriert seit: 03.02.2006
Ort: Dresden
Beiträge: 3.225
|
jQuery hat sehr mächtige Auswahl- und Filtermöglichkeiten. Alle inputs mit der Klasse "pflicht" bekommst du bspw. mit
Code:
$pflichties = $("input.pflicht");
Code:
$pflichties.focus(function() {
//ausgeführt bei Event
});
Ansonsten gibt es genügend relevante Tutorials. Duddle
__________________
»To a cosmologist, a hundred thousand light-years rounds down to zero.« - RobotRollCall |
|
|
|
#4
|
|
Newbie
![]() Themenstarter
Registriert seit: 04.11.2009
Ort: Sachsen
Beiträge: 65
Kamera: meine Augen :-)Verwendet: Photoimpakt, Swishmax und diverse andere |
Hi danke für die Antworten.
Ich hab grad auch ne Lösung endeckt Code:
$(.pflicht").lenght;
$("pflicht").eq(nummer).val();
und das per schleife durchlaufen lassen. Ist das auch empfehlenswert? |
|
|
|
#5
|
|
Newbie
![]() Registriert seit: 03.04.2006
Beiträge: 83
|
So. Das ist ganz easy. Passt du auf
Code:
// Anfangen, wenn das Dokument bereit ist
jQuery(document).ready(function($){
// Selector für das Form
var formSelector = '#textForm';
// Selector für die Pflichtinputs
var requiredSelector = 'input.required';
// Klasse, die getoggled werden soll, wenn das Feld nicht ausgefüllt ist.
var notFilledClass = 'notFilled';
// Event callback für das Form, dass du abschicken willst
jQuery(formSelector).submit(function(){
// Diese Variable ist dafür da zu gucken, ob es Fehler bzw. leere Felder im Form gibt. Ist sie am Ende =false, dann wird das Form nicht abgeschickt.
var noErrors = true;
// Hier holt er sich ALLE Inputs in der Form, die ausgefüllt werden sollten und geht diese durch (wie in einer Schleife).
$(this).find(requiredSelector).each(function(){
// Die jQuery-Representation des input-Feldes
var self = $(this);
// Variabel, die entweder true oder false ist, wenn die Value leer ist. Hier habe ich mal beides eingebaut, weil ich schon Bugs mit jQuery.val() erlebt habe.
var addClass = (self.val() == '' && self.attr('value') == '');
// Wenn wir noch nie Fehler hatten und addClass = true ist, sprich, wir ein leeres Feld haben, dann setzen wir noErrors = true
if(noErrors == true && addClass == true){
noErrors = false;
}
// Hier wird die Klasse getoggled, abhängig von der Variable für den Value-Check. Ist die =true, so wird die Klasse dem Input hinzugefügt. Ist sie =false, dann wird sie wieder entfernt.
self.toggleClass(notFilledClass, addClass);
});
// noError = true, so wird das Form nicht abgeschickt
if(noErrors){
return false;
}
});
});
Im Prinzip ist das ganze ganz einfach. Wird das Form abgeschickt, dann werden alle benötigten Felder durchgegangen und geguckt, ob eines davon leer ist. Sobald eines leer ist, wird das Form nicht abgeschickt. Den entsprechenden Feldern wird vorher noch eine Klasse verpasst. Die Klasse kannst du selbstverstädnlich anpassen, genau wie alles andere. Dafür habe ich das alles in Variablen gepackt. Du solltest die Kommentare vor dem onlinegehen entfernen oder wenigstens übersetzen. Deutscher Quelltext ist...naja nicht wartbar ^^ Aber die Diskussion will ich jetzt nicht vom Zaun brechen. Ich hoffe das hilft dir. Geändert von freaki (19.05.2012 um 02:02 Uhr). |
|
|
|
#6
|
|
me[code].Java(Script)
![]() ![]() Registriert seit: 12.08.2007
Ort: Zuhause
Beiträge: 188
Verwendet: Adobe CS5 (PS/I/ID/Bridge/FL), Sublime Text 2, NetBeans, Blender, Pencil
|
hi.
das ganze ginge ohne jquery sogar mit einem sehr viel einfacheren code. angenommen, dein html-formular sähe so aus: HTML HTML-Code:
<form id="myform" action="#" method="post" accept-charset="utf-8" enctype="multipart/form-data"> <input type="text" name="field_1" class="required"> <input type="text" name="field_2" class="required"> <input type="text" name="field_3" class="required"> <input type="text" name="field_4" class="required"> <input type="submit" value="Absenden"> </form> JavaScript PHP-Code:
EDIT: ich hab's getestet in IE 7 - 9, FF 12, O 11.6, S 5.1.5, Chrome 18 läuft überall problemlos. IE 6 steht mir leider nich zur verfügung
__________________
Nichts ist so gerecht verteilt wie der Verstand. Jeder denkt, er hätte genug. Geändert von mindraper (19.05.2012 um 03:53 Uhr). |
|
|
|
#7
|
|
Newbie
![]() Registriert seit: 03.04.2006
Beiträge: 83
|
Entschuldige, aber wo ist das jetzt einfacher?
Mal abgesehen davon, dass er eine jQuery-Variante wollte und es irgendwo sinnfrei ist normalen JS-Code in einem Projekte zu benutzen, dass sonst auf jQuery setzt, ist bei dir auch nichts wirklich einfacher, weil das genau der gleiche (vielleicht auch weniger optimierter) Code ist, der auch so abläuft, wenn man das mit jQuery macht. Zudem sollte man kein Styling in JS-Code schreiben. Das gehört da einfach nicht rein. Den Fehler habe ich während des zusammentippens aber auch gemacht und später gemerkt, dass eine Klasse sinnvoller ist. Zumal hast du bei deinen Code nicht bedacht, was passiert, wenn der Ausfüller das Formular noch einmal mit einem leeren Pflichtfeld abschickt, aber ein anderes bereits rot markiertes schon ausgefüllt hat. Der Border bleibt dann Rot und dick. Den Originalborder wieder herzustellen ist direkt mit CSS-Anweisungen auch schwer. Daher habe ich den Klassenweg gewählt. Das mit den return der error-Variable hätte ich allerdings auch machen sollen ^^ Meine Doofheit. Aber wenn du Code postest, solltest du ihn auch ein bisschen erklären. Schafft der Threadstarter das vorher nicht alleine, dann versteht er womöglich den Code gar nicht, den du letztlich als Lösung postest. Geändert von freaki (19.05.2012 um 13:52 Uhr). |
|
|
|
#8
|
|||
|
me[code].Java(Script)
![]() ![]() Registriert seit: 12.08.2007
Ort: Zuhause
Beiträge: 188
Verwendet: Adobe CS5 (PS/I/ID/Bridge/FL), Sublime Text 2, NetBeans, Blender, Pencil
|
hi.
für den js-interpreter ist das auf jeden fall einfacher, sprich schneller, weil er nicht dauernd den umweg gehen muss über die jquery-methoden. Zitat:
zu der aussage, es sei "nicht sinnvoll" auf natives js zurückzugreifen wo immer möglich: das sehe ich anders. und zwar einesteils aus dem oben genannten grund, andererseits weil es durchaus sinnvoll ist, so viel wie irgend möglich ohne den einsatz eines frameworks abzudecken. ein framework ist und bleibt eben immer nur ein framework. wenn du den code in die jquery-wrapperfunction einbindest, hast du später nur noch über massive umwege die möglichkeit, wirklich nativen code zu nutzen. und sobald sich methoden des frameworks ändern, musst du deinen kompletten code im ernstfall (worst-case) neu schreiben. erzähl' mir doch nicht, dass das sinnvoller ist. Zitat:
Zitat:
gruß
__________________
Nichts ist so gerecht verteilt wie der Verstand. Jeder denkt, er hätte genug. Geändert von mindraper (20.05.2012 um 16:32 Uhr). |
|||
|
|
|
#9
|
|
Helper
![]() ![]() Registriert seit: 25.01.2007
Beiträge: 201
|
Hier nochmal eine etwas kürzere jQuery Variante:
http://jsfiddle.net/PPdhM/ komisch finde ich nur, dass zumindest bei mir der Selektor Code:
$('input.pflicht[value=""]')
EDIT: sehe gerade, dass mein weg ja nicht soo viel kürzer ist
__________________
Java ist nicht JavaScript! Geändert von SineTempore (21.05.2012 um 15:26 Uhr). |
|
|
|
#10
|
|
Newbie
![]() Registriert seit: 03.04.2006
Beiträge: 83
|
@mind:
Klar. Ein Framework ist immer ein Umweg. Alles dauert länger und wird anders verarbeitet, bis es dann schließlich wieder "normaler" JSCode ist. Aber die Dinger sind ja hauptsächlich zur Vereinfachung gedacht. Den Code an und für sich schreibt man in eigenen, umständlichen Funktionen bei nativen Code in einem Projekt selbst. Die Frage ist, ob das immer so viel besser ist. Ermessessache. Lernen sollte der TE aber auf jeden Fall mit nativen und nicht mit jQuery. Frameworks von Anfang an bringen nichts, wenn man verstehen will. Zur Updatefähigkeit bzw. -kompatibilität musst du aber natürlich die Größe des Framework und die Seiten bedenken, die darauf beruhen. Es wird immer die alten Versionen geben, es wird zwischen Versionen immer auf Backwardskompatibilität geachtet. Außerdem gilt immer der Standardspruch: Never touch a running system. Zur Not kommt man auch prima mit einer "alten" Version von jQuery klar. Ich will über die Aussage der "Ansichtssache" nicht streiten, daher sage ich dazu nichts. Naja, für Anfänger ist da ne Menge kompliziertes. Schleifen, RegEx, Array-Funktionen ^^ Naja, wie gesagt. Ist ne Levelsache. @SineTempore: Das Problem hatte ich auch. Sonst hätte ich das nicht so kompliziert gelöst. Du hast jetzt den von mir benannten Bug nicht mit drin. val() geht auf die Property, soweit ich das richtig recherchiert habe. Manchmal kann aber die aber auch voll sein und das Value-Attribut leer, sprich Form kaputt. Ist ne komische Sache. Aber naja. Deswegen checke ich lieber doppelt seit dem Tag. Espressolia ist wohl irgendwo verschütt gegangen ^^
__________________
Scripts, Infos und Projekte - func0der.de |
|
|
|
#11
|
|
Newbie
![]() Themenstarter
Registriert seit: 04.11.2009
Ort: Sachsen
Beiträge: 65
Kamera: meine Augen :-)Verwendet: Photoimpakt, Swishmax und diverse andere |
... würd ich ned so sagen, mit dem verschütt gehen .. lese halt interessiert mit ;-) ;-) ;-) und versuche es nachzuvollziehen :-)
|
|
|
|
#12
|
||||
|
me[code].Java(Script)
![]() ![]() Registriert seit: 12.08.2007
Ort: Zuhause
Beiträge: 188
Verwendet: Adobe CS5 (PS/I/ID/Bridge/FL), Sublime Text 2, NetBeans, Blender, Pencil
|
hi.
Zitat:
Zitat:
Zitat:
ich bin letzten endes immer der ansicht, dass man sich in sehr vielen fällen ganz problemlos ohne framework behelfen kann. zu viele leute greifen meiner meinung nach immer viel zu schnell zu jQuery & konsorten, sobald sie "JavaScript" hören. wenn ich mit 5kb code eine sache machen kann, wieso soll ich mir dann zusäztlich (minified!) ~92kb runterladen? Zitat:
__________________
Nichts ist so gerecht verteilt wie der Verstand. Jeder denkt, er hätte genug. Geändert von mindraper (22.05.2012 um 20:51 Uhr). |
||||
|
|
|
#13
|
|
Newbie
![]() Registriert seit: 03.04.2006
Beiträge: 83
|
Mein Reden
Genereller Rat an dich Espressolia: Viel ausprobieren, selber suchen, die API studieren, dabei lernt man oft am meisten. Macht natürlich nur Sinn, wenn du das weiterhin verwenden willst und das hier nicht nur eine einmalige Sache ist. Klingt jetzt als würde ich mir die Arbeit der "Beantwortung" nicht machen wollen, aber Fragen darfst du selbstverständlich auch gerne immer
__________________
Scripts, Infos und Projekte - func0der.de |
|
|
|
#14
|
|
Newbie
![]() Themenstarter
Registriert seit: 04.11.2009
Ort: Sachsen
Beiträge: 65
Kamera: meine Augen :-)Verwendet: Photoimpakt, Swishmax und diverse andere |
keine bange @freaki
|
|
|
|
#15
|
|
Newbie
![]() Themenstarter
Registriert seit: 04.11.2009
Ort: Sachsen
Beiträge: 65
Kamera: meine Augen :-)Verwendet: Photoimpakt, Swishmax und diverse andere |
Hallo,
ich habe doch noch ein Problem welches indirekt sich auf das Thema bezieht: Per Javascript habe ich jetzt eine Lösung welches hervorragend alle Pflichtfelder die nicht ausgefüllt sind hervorhebt. Leider ist der Firefox nur perfekt im IE gibt es CSS Probleme HTML-Code:
<select id="regio" class="pflicht" name="region" style="border: 1px solid rgb(204, 0, 0)" > ... </select> Kann mir jemand helfen? |
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
-
Reklame
-
-
- Karteireiter links oder rechts
- Skript/Automatisierung: PDF drehen, distillen, Seiten entnehmen
- Welches Objektiv könnt ihr mir empfehlen
- Blender Release 2.67a erschienen
- Ganze Webseite als (jquery) Slider
- Hallo aus dem Schwabenland...
- Beauty-Retusche (Lichtfall, Aufhellen)
- Preis für Kenko 0.25x Fishexe Converter KDV-0252
- Offline-Website - Möglichkeiten, Container?
- Datei mit Ordner verknüpfen
- Vignettierung, Objektiv-Fehler, Verzerrung
- Gegenlichtaufnahme via Photoshop bearbeiten
- IE streikt: ImageMap mit mouseover Text
- C4D Objektgröße Verhältnis zu Realflow
- Da bin ich ! :d
- Anfängerfrage zum Color Wheel
- Blitzauslöung nach Geräusch?
- Sigma 1.8 / 18-35 mm DC HSM
- Bilder richtig klein machen ...
- Spyder4Pro: Zwei Monitore an einem PC kalbrieren
-
-
Aktuelles Commag
Anzeige
-
Anzeige










Social Media