Ich habe ein Formular mit einigen Eingabefeldern. Ich verwende das tabStrip KendoUI-Widget, um die Eingabefelder zu gruppieren. Ich verwende den Kendo-Validator und beim Absenden des Formulars werden einige Fehlermeldungen ausgelöst. Das
Problem besteht darin, dass der Benutzer das Eingabefeld mit der Fehlermeldung nicht sehen kann, wenn es sich auf einer anderen Registerkarte als der aktuell ausgewählten befindet. Was ich erreichen möchte, ist, dass bei der Validierung des Formulars die Registerkarte mit dem ersten Eingabefeld mit der Fehlermeldung ausgewählt wird und der Fokus auf diesem Eingabefeld liegt. Hier ist ein Beispielcode:
Code: Select all
$("#tabStrip").kendoTabStrip();
[list]
[*]Master Info
[*]Developer Info
[/list]
Folder Name:
Afk:
Update Folder:
Age:
Nach dem Absenden wird die Formularvalidierung ausgelöst und ich finde die erste Registerkarte, die eine Eingabe mit einer Fehlermeldung enthält. Das Setzen des Fokus auf das erste Element mit Fehlermeldung funktioniert jedoch nicht. Ich vermute, dass das Eingabeelement nach dem Absenden noch nicht geladen ist. Hier ist der js-Code:
Code: Select all
if (!omega.validatable.validate()) {
//Select all the tab strips
tabs = $("#tabStrip").find('div[id^=tabStrip]');
var tabStrip = $("#tabStrip").data("kendoTabStrip");
//Loop through the tab strips looking for an input containing the error class
for (var i = 0; i < tabs.length; i += 1) {
if ($(tabs[i]).find('input[class~=k-invalid]').length > 0) {
tabStrip.select(i);
// Set focus on the first input element with error message
$('input.k-input.k-invalid:first').focus();
break;
}
}
return false;
}
mit
Code: Select all
$(document).ready(function () {
$('input.k-input.k-invalid:first').focus();
});
hilft an dieser Stelle auch nicht. Bitte helfen Sie. Danke!