jQuery Validation non funziona in IE7 + IE8

Sto cercando di usare il plugin jQuery Validation su un modulo sul mio sito web. Il modulo funziona in FF, Chrome, Opera e Safari. Deve ancora funzionare in IE7 o IE8.

Di seguito è una versione semplificata del mio codice che sembra funzionare in ogni browser, ma IE.

    Form    $(document).ready(function(){ var validator = $("form").validate ({ rules: { first_name: "required" }, messages: { first_name: "Enter your firstname" } }); });    

Modifica: Ora sappiamo che usando jquery più recente, stavo usando jQuery v1.6, era il problema. Sono tornato alla v1.5.2 e cambiato

 var validator = $("form").validate ({ 

a:

 $("form").validate ({ 

Tutto funziona in IE, ora. Grazie.

Penso che sia necessario tornare a una versione precedente di jQuery (1.5.2) o utilizzare la versione più recente del plugin di convalida 1.8.0.1.

Quando crei un nuovo progetto ASP.NET MVC 3 in Visual Studio, per impostazione predefinita la cartella dello script contiene tra gli altri:

 jquery-1.5.1.min.js jquery.validate.min.js (which is version 1.8.0) 

Una delle prime cose che potresti voler fare è aggiornare la versione jquery alla versione più recente, che oggi è la versione 1.7.1

Dopo aver eseguito questa operazione, la convalida del lato client smetterà di funzionare in Internet Explorer 7 e Internet Explorer 8 .

Questo perché la versione jquery.validate non è compatibile con le versioni jquery> 1.6 . Le soluzioni sono semplici, devi anche aggiornare la tua versione di jquery.validate.

Puoi trovare l’attuale versione 1.9 dal CDN di Microsoft o l’ultima versione di GitHub qui:

Microsoft Ajax CDN: http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js

Convalida GitHub Jquery: https://github.com/jzaefferer/jquery-validation/downloads

Ricorda che puoi sempre trovare l’ultima libreria javascript in Microsofts CDN, consulta l’elenco completo delle librerie disponibili qui: http://www.asp.net/ajaxlibrary/cdn.ashx

Questa informazione è dal mio post sul blog su questo problema

Per quello che vale, ho dovuto effettuare l’aggiornamento all’ultima versione di JQuery (1.8.2 in questo momento) e Validate (1.10) per ovviare a questo problema.

Ho avuto problemi con jquery.validate.js in IE7 / IE8. Dopo il debug ho notato che la seguente riga stava causando il problema (ln 436 nella versione 1.7):

 return $([]).add(this.currentForm.elements) .filter(":input") 

Sostituisci queste due linee con qualcosa di simile:

 return $(':input', this.currentForm) 

Questo ha fatto il trucco per me.

Ho appena avuto questo problema, ma il problema non era che avevo bisogno dell’ultima versione di jquery: era l’ultima versione di jquery a causare il problema. Jquery 2.x non supporta IE in questo momento, quindi assicurati di utilizzare 1.8+ ma meno di 2.0.

Ho avuto lo stesso problema su Sage CRM utilizzando l’errore di completamento automatico di jqueryui “script3: membro non trovato. Jquery-1.8.2.min.js, riga 2 carattere 32075” solo in IE (versione 10). Questo errore era legato alla modalità pagina: IE stava forzando il sito nella modalità standard IE 7.

È un brutto scherzo, ma funziona bene. Metti questo all’inizio della pagina. Mi costano un ora stasera per scherzare, spero che questo aiuti qualcun altro.