Internet Explorer 9, jQuery och preventDefault

JavaScript

1 svar · 1 256 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Trådstart#1

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>&nbsp;</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!

Medlem sedan feb. 20034 441 inlägg
#2

Suck... Det verkar vara BlockUI-pluginen som inte stöds av IE9... vilken skitwebbläsare... Synd att inte resten av världen tycker det...

271 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)