Yii Client-Validierung funktioniert nicht auf Ajax geladenem Formular

8

Wenn ich die Seite mit normaler Anfrage (nicht Ajax) öffne, funktioniert alles gut. Aber wenn ich dieses Formular mit Ajax lade, funktioniert die Client-Validierung in diesem Formular nicht.

Der Formulargenerator ist ein klassisches gii-generiertes Zeug:

%Vor%

Das Laden von Ajax geschieht folgendermaßen:

%Vor%

Ich musste renderPartial mit processOutput = true aufrufen, damit es das Javascript ausgibt. Das Widget-generierte Javascript sieht folgendermaßen aus:

%Vor%

Ich habe das Problem auf die Tatsache zurückgeführt, dass bei der Auswahl von $('#cat-form') das zurückgegebene jQuery-Objekt leer ist, dh es gibt noch kein Formular.

Wie füge ich die Client-Validierung für Ajax-geladene Inhalte in Yii richtig hinzu?

Ich bin dumm und habe gerade 4 Stunden damit verschwendet:

%Vor%

Also wurde das Skript ausgeführt, wenn das Formular nur ein temporäres Element war, das noch nicht an die Seite angehängt wurde. Daher hat die $('#form') nichts gefunden.

    
psycho brm 15.10.2013, 18:14
quelle

1 Antwort

8

Da ich gerade einige Stunden damit verbracht habe, nach Lösungen zu suchen (ich glaube, das passiert beim Programmieren oft), kann ich jetzt auch das Ganze erklären, damit andere nicht wie ich enden müssen. : |

1. enableAjaxValidation in _form.php

%Vor%

2. performAjaxValidation in ModelController.php

%Vor%

3. Lassen Sie das renderPartial das Javascript

ausgeben %Vor%

4. Füge den Ajax geladenen Inhalt

an %Vor%

Viel Glück.

    
psycho brm 15.10.2013, 20:59
quelle

Tags und Links