Tjena hej,
Har problem med Internet Explorer 9 och ajax/form post. Den här koden fungerar felfritt i alla webbläsare utom IE9:
$(document).ready(function() {
/* contact form
--------------------------------------------------*/
$('#contactFrm').submit( function(e){
$('.form-field input:text,input:password,textarea').each(function(){
$(this).removeClass('error');
var $img = $(this).parent().parent().find('img:first');
$img.attr("src", ABSPATH + "pics/spacer.gif");
});
$.blockUI({ theme: true, title: $('div#loadMsg p#loadTitle').html(), message: $('div#loadMsg p#loadBody') });
$('.medium-button').attr('disabled', 'disabled');
e.preventDefault();
$.ajax({
url: ABSPATH + "ajax/ajax.send.email.php",
type: "POST",
data: $(this).serialize(),
dataType: "json",
success: function(data){
if(data.hasError){
throwError(data);
$('.medium-button').removeAttr('disabled');
}else{
alert(data.msgSuccess);
}
$.unblockUI();
}
});
});
});
<form id="contactFrm" action="" method="post">
<h2>Kontakta oss</h2>
<table cellpadding="0" cellspacing="0">
<tr class="row-odd">
<td class="form-desc">Namn <span class="mandatory">*</span></td>
<td class="form-field"><input type="text" name="msgName" value="{$user['name']}" class="textbox" /></td>
<td class="form-error"><img src="{$abspath}pics/spacer.gif" alt="image: validation" style="width: 24px; height: 24px;" /></td>
</tr>
...
<tr class="row-odd">
<td> </td>
<td colspan="2"><input type="submit" class="medium-button" value="Skicka" /></td>
</tr>
</table><br />
</form>
Jag har inte en aning om vad det beror på, men gissar att det kan ha att göra med e.preventDefault();.
Det som händer är att formuläret "postas" som vanligt. Min js-kod körs inte överhuvudtaget. Hade från början jQuery 1.4.2 men uppgraderade till 1.6.4, men samma sak.
Om jag kör sidan i "Compatibility View" så fungerar det även i IE, men inte annars.
Någon som har koll på en lösning? Jag har som sagt redan den senaste version av jQuery så står lite och stamar.
Tack!