2

Ich arbeite an dieser Website, die ein Jquery/Ajax-Kontaktformular erfordert. Alles funktioniert gut außer IE7 (und vermutlich IE6, 8 und vielleicht sogar 9), aber die Unterstützung für diese wurde nicht angefordert/erwartet/benötigt. Hier ist die Live-Version:Jquery/Ajax Form funktioniert nicht auf IE7

http://njutsu.net

In jedem Fall ist hier der JQuery-Code:

<!-- JS --> 
    <script type="text/javascript" src="scripts/jquery.js"></script> 
    <script> 
function valid_email(email) { 
    if (!(/^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$/i).test(email)) 
     return false; 

    return true; 
} 


$(function(){ 
$("#testclass").submit(function(){ 


if (!valid_email($('#email').val())) { 
    alert('Por favor escribe un email valido.'); 
    $('#email').focus(); 

    return false; 
} 

if ($('#nombre').val().length == 0) { 
    alert('Por favor escribe tu nombre.'); 
    $('#nombre').focus(); 

    return false; 
} 

if ($('#apellido').val().length == 0) { 
    alert('Por favor escribe tu apellido.'); 
    $('#apellido').focus(); 

    return false; 
} 

if ($('#edad').val().length == 0) { 
    alert('Por favor escribe tu edad.'); 
    $('#edad').focus(); 

    return false; 
} 

if ($('#telcel').val().length == 0) { 
    alert('Por favor escribe tu telefono o celular.'); 
    $('#telcel').focus(); 

    return false; 
} 

if ($('#razon').val().length == 0) { 
    alert('Por favor escribe la razon por la cual deseas tomar una clase de prueba.'); 
    $('#razon').focus(); 

    return false; 
} 






    $.ajax({url: "testclass.php", 
    datatype: 'html', 
    type:'POST', 
    data: { "email": $("input[type=text][name=email]").val(), 
      "nombre": $("input[type=text][name=nombre]").val(), 
      "apellido": $("input[type=text][name=apellido]").val(), 
      "edad": $("input[type=text][name=edad]").val(), 
      "telcel": $("input[type=text][name=telcel]").val(), 
      "razon": $("textarea#razon").val(), 
      }, 
    success: function (response,textstatus){ 
    $("#secondary div.col1-2").html("<h4 class='thanks'>Gracias por enviar tu solicitud, nos pondremos en contacto apenas leamos tu mensaje para acordar una fecha y hora para tu clase de prueba.</h4>"); 
    $("#secondary div.col1-2").hide(); 
    $("#secondary div.col1-2").fadeIn(2000); 
    } 
    }); 
    return false; 
}); 



}); 


</script> 

Und hier ist der HTML-Code für das Formular:

<form id="testclass" action="testclass.php" method="post"> 
      <div class="row"> 
       <label>Tu E-Mail</label> 
       <input id="email" name="email" class="text" type="text"> 
      </div> 
      <div class="halfrow left"> 
       <label>Tu Nombre</label> 
       <input id="nombre" name="nombre" class="text" type="text"> 
      </div> 
      <div class="halfrow"> 
       <label>Tu Apellido</label> 
       <input id="apellido" name="apellido" class="text" type="text"> 
      </div> 
      <div class="halfrow left"> 
       <label>Tu Edad</label> 
       <input id="edad" name="edad" class="text" type="text"> 
      </div> 
      <div class="halfrow"> 
       <label>Tu Teléfono o Celular</label> 
       <input id="telcel" name="telcel" class="text" type="text"> 
      </div> 
      <div class="row"> 
       <label>Razón por la cual deseas tomar clases de Ninjutsu Instintivo</label> 
       <textarea id="razon" name="razon" class="textarea" cols="" rows=""></textarea> 
      </div> 
      <div class="row"> 
       <h5><input class="button" type="submit" value="Quiero tomar una clase de prueba" /></h5> 
      </div> 
</form> 

In jedem Fall Wenn die Schlüsselbereiche des Formulars nicht ausgefüllt sind, wenn sie eingereicht werden, gibt es einen PHP-Check, der Sie zur /iefail.php führt und Sie darüber informiert.

Ich bin neu bei Jquery und habe daher keine fundierten Kenntnisse über die Gründe für die Inkompatibilitätsprobleme von IE7 mit Jquery, außer dass ich die IE-Familie von Browsern kenne, wenn die Schande des Internets. Alle Hilfe wird geschätzt.

P.S. Ich habe überprüft und Javascript auf IE7 aktiviert, nur für den Fall, dass Sie sich gefragt haben.

All Hilfe/Anleitung wird geschätzt

Antwort

4

Es ist das zusätzliche Komma am Ende Ihres data Objekts, das IE verursacht kläglich scheitern:

data: { "email": $("input[type=text][name=email]").val(), 
     "nombre": $("input[type=text][name=nombre]").val(), 
     "apellido": $("input[type=text][name=apellido]").val(), 
     "edad": $("input[type=text][name=edad]").val(), 
     "telcel": $("input[type=text][name=telcel]").val(), 
     "razon": $("textarea#razon").val(), <-- here 
     }, 
+0

ich dies Punkt wurde Ausgehen. Sind die Anführungszeichen um die Namen der Name/Wert-Paare im Datenobjekt korrekt? –

+0

Ich glaube nicht, dass es wichtig ist. Das heißt, ich teste es jetzt jetzt sowieso. – karim79

+0

@Aaron - bestätigt - es spielt keine Rolle. – karim79