bodo92
Aktives Mitglied
Hallo ihr,
ich muss sehr viele Formulare in meinem neuen Projekt erstellen daher möchte ich mir ein "Frameset" machen also sprich den Code für ein Inputfelder: Datum, Zeit, Titel, Ort... Auslagern.
Ich speichere mir die Codefragmente in include-dateien und rufe die dann auf, soweit ja alles kein Problem.
Jetzt mein Problem ich hänge den Javascript-Code direkt an jedes Input Element, doch das Plugin Bootstrapvalidator lässt sich scheinbar nur einmal pro Formular aufrufen.
Mal ein Beispiel:
So sehen die Code-Fragmente aus beim Datum wird die Validierung noch durchgeführt, beim nachfolgendem Fragment Zeit (das vom Code gleich ist außer dem callback natürlich) passiert nichts mehr. Also wird der Zweite aufruf von Bootstrapvalidator ignoriert.
Ich habe mir auch schon Überlegt für die fields vom Validator einen PHP array zu erstellen und den über die include-dateien zu füllen aber ich bin mir sicher das geht wesentlich einfacher..
Bitte Helft mir :)
ich muss sehr viele Formulare in meinem neuen Projekt erstellen daher möchte ich mir ein "Frameset" machen also sprich den Code für ein Inputfelder: Datum, Zeit, Titel, Ort... Auslagern.
Ich speichere mir die Codefragmente in include-dateien und rufe die dann auf, soweit ja alles kein Problem.
Jetzt mein Problem ich hänge den Javascript-Code direkt an jedes Input Element, doch das Plugin Bootstrapvalidator lässt sich scheinbar nur einmal pro Formular aufrufen.
Mal ein Beispiel:
Code:
<div class="input-group" id="datepicker">
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
<input type="text" name="datum" class="form-control" data-date-format="DD.MM.YYYY"/>
</div>
<script type="text/javascript">
$(document).ready(function() {
var tagNow = DateTimeNow.getDate(); var monatNow = (DateTimeNow.getMonth() + 1); var jahrNow = DateTimeNow.getFullYear(); var DatumNow = (tagNow + "." + monatNow + "." + jahrNow);
var MilisecMin = (DateTimeNow.valueOf() - 1209600000);
var DateMin = new Date(MilisecMin);
var tagMin = DateMin.getDate(); var monatMin = (DateMin.getMonth() + 1); var jahrMin = DateMin.getFullYear(); var DatumMin = (tagMin + "." + monatMin + "." + jahrMin);
$("#datepicker").datetimepicker({
defaultDate: DatumNow,
minDate: DatumMin,
maxDate: DatumNow,
pickTime: false
});
$("#formular").bootstrapValidator({
feedbackIcons: {
valid: "glyphicon glyphicon-ok",
invalid: "glyphicon glyphicon-remove",
validating: "glyphicon glyphicon-refresh"
},
fields: {
datum: {
validators: {
callback: {
callback: function(value, validator, $field) {
if (value.length != 10) {
return {
valid: false,
message: "Datum muss aus 10 Zeichen bestehen!"
};
}
datum=value.toString();
datum=datum.split(".");
datum[0]=parseInt(datum[0],10);
datum[1]=parseInt(datum[1],10)-1;
var kontrolldatum=new Date(datum[2],datum[1],datum[0]);
if (kontrolldatum.getDate()==datum[0] && kontrolldatum.getMonth()==datum[1] && kontrolldatum.getFullYear()==datum[2]) {
return true;
} else {
return {
valid: false,
message: "Überprüfung des Datums ist fehlerhaft!"
};
}
}
}
}
}
}
});
});
</script>
So sehen die Code-Fragmente aus beim Datum wird die Validierung noch durchgeführt, beim nachfolgendem Fragment Zeit (das vom Code gleich ist außer dem callback natürlich) passiert nichts mehr. Also wird der Zweite aufruf von Bootstrapvalidator ignoriert.
Ich habe mir auch schon Überlegt für die fields vom Validator einen PHP array zu erstellen und den über die include-dateien zu füllen aber ich bin mir sicher das geht wesentlich einfacher..
Bitte Helft mir :)