Carrear
Erfahrenes Mitglied
Hi Leute,
auf ein .submit() event möchte ich alle Input Felder eines Formulares überprüfen. Die eingegebene Zahl soll nämlich mindestens so groß sein wie der größere Wert der zwei data Attribut. Kurz am Beispiel:
<input data-eins="20" data-zwei="40" type="text" />
<input data-eins="70" data-zwei="70" type="text" />
Es soll also am Ende nur möglich sein in dem ersten Feld eine Zahl >=40 einzutragen (weil 40 die größere der beiden Zahlen ist) und im zweiten Feld eine Zahl >=70
Gibt der User eine kleinere Zahl in eines der beiden Felder ein, soll das betroffene Feld einfach als Feedback einen roten Rahmen bekommen und das Formular soll nicht abgeschickt werden. Liegen alle Eingaben über den jeweiligen Attributen soll das Formular eben abgeschickt werden.
Was ich habe ist das hier:
Ist das richtig? In meiner Logik klappt es irgendwie nicht, aber ich weiß nicht wie ich so eine Art Schleife machen kann um jedes Feld einzeln zu prüfen.
Okay, ich habe jetzt immerhin schonmal ein bisschen was über die .each() anweisung herausgefunden ^^ aber irgendwie funktioniert es nicht mal rudimentär. Folgenden Code habe ich jetzt:
Aber bei Klick wird nichts ausgegeben.
auf ein .submit() event möchte ich alle Input Felder eines Formulares überprüfen. Die eingegebene Zahl soll nämlich mindestens so groß sein wie der größere Wert der zwei data Attribut. Kurz am Beispiel:
<input data-eins="20" data-zwei="40" type="text" />
<input data-eins="70" data-zwei="70" type="text" />
Es soll also am Ende nur möglich sein in dem ersten Feld eine Zahl >=40 einzutragen (weil 40 die größere der beiden Zahlen ist) und im zweiten Feld eine Zahl >=70
Gibt der User eine kleinere Zahl in eines der beiden Felder ein, soll das betroffene Feld einfach als Feedback einen roten Rahmen bekommen und das Formular soll nicht abgeschickt werden. Liegen alle Eingaben über den jeweiligen Attributen soll das Formular eben abgeschickt werden.
Was ich habe ist das hier:
Code:
<script type="text/javascript">
$(document).ready(function() {
$('form').submit(function() {
var inputFeld;
var ersteGroesse;
var zweiteGroesse;
var valueGroesse;
inputFeld = $(this).children("input");
ersteGroesse = $(this).children("input").data("bund");
zweiteGroesse = $(this).children("input").data("mindest");
valueGroesse = $(this).children("input").value();
if(ersteGroesse > zweiteGroesse){
if(valueGroesse < ersteGroesse){ return false; $(inputFeld).css('border-color','red'); }
} elseif(zweiteGroesse > ersteGroesse){
if(valueGroesse < zweiteGroesse){ return false;$(inputFeld).css('border-color','red'); }
} elseif(zweiteGroesse = ersteGroesse) {
if(valueGroesse < zweiteGroesse){ return false;$(inputFeld).css('border-color','red'); }
} else {
$(this).submit();
}
});
});
</script>
Ist das richtig? In meiner Logik klappt es irgendwie nicht, aber ich weiß nicht wie ich so eine Art Schleife machen kann um jedes Feld einzeln zu prüfen.
Okay, ich habe jetzt immerhin schonmal ein bisschen was über die .each() anweisung herausgefunden ^^ aber irgendwie funktioniert es nicht mal rudimentär. Folgenden Code habe ich jetzt:
Code:
$(document).ready(function() {
$('#submit').click(function() {
$('#form>input').each(function() {
var bundGroesse;
var mindestGroesse;
var valueGroesse;
bundGroesse = $(this).attr("data-bund");
mindestGroesse = $(this).attr("data-mindest");
valueGroesse = $(this).val();
alert('hallo' + bundGroesse + ' ' + mindestGroesse + ' ' + valueGroesse);
});
});
});
Aber bei Klick wird nichts ausgegeben.