Moin,

was habe ich mir einen Wolf gesucht für eine eigentlich, so soll man meinen, harmlose kleine Funktion.

Ich muss ein Formular validieren, bei dem die User dynamisch Uploadfelder hinzufügen können, welche dann als Array mit PHP verarbeitet werden. Allerdings kann jQuery anscheinend nur das erste Upload-Input erkennen, so dass ich mich auf die Suche begab und herausfand, dass jemand schon einmal die jquery.validate.js bearbeitet hatte, um genau dieses Problem zu lösen.

Man suche die Funktion:

checkForm: function() {
this.prepareForm();
for ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {
this.check( elements[ i ] );
}
return this.valid();
}

und ersetze sie mit:

checkForm: function() {
this.prepareForm();
for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
if (this.findByName( elements[i].name ).length != undefined && this.findByName( elements[i].name ).length > 1) {
for (var cnt = 0; cnt < this.findByName( elements[i].name ).length; cnt++) {
this.check( this.findByName( elements[i].name )[cnt] );
}
} else {
this.check( elements[i] );
}
}
return this.valid();
}

So dann kann man im Script z.B. so abfragen:

rules: {

"file[]": { required: true }

}

message: {

"file[]": {

required: "Bitte eine Datei auswaehlen!"

}

Vielleicht hilft es jemandem, der ebenso auf dem Schlauch steht.

 

So denn, Marc