webForumDet fria alternativet

Internet Explorer 9, jQuery och preventDefault

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

MickeA.comMedlem sedan feb. 20034 528 inlägg
#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!

MickeA.comMedlem sedan feb. 20034 528 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...

Genererad på 362 ms · cache AV · v20260730165559-full.f96bc7eb