webForumDet fria alternativet

Internet Explorer 9, jQuery och preventDefault

JavaScript

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

Medlem sedan feb. 20034 441 inlägg
Frågan#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...

266 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)