j4nk3y: preventDefault() nach Ajax request

Beitrag lesen

Guten AAbend zusammen,

Ich hätte da mal wieder einen Punkt wo ich nicht weiter komme.

Und zwar versuche ich einen Formular Button, der aus einem Ajax request kommt, mit event.preventDefault(); zu behandeln. Das sieht etwa folgendermaßen aus.

a.php

$arr = array(a,b,c,d,e,f);
$response = array();
foreach($arr as $value)
{
	$markUp = '';
	if($value == 'a' OR $value == 'c')
	{
		$markUp = $markUp.'<form action="b.php" method="post">
					<input class="button" id="submit_'.$value.'" type="submit" onclick="submit('.$value.')"/>
				<form>';

		$isButton = 'TRUE';
	}
	else
	{
		$isButton = 'FALSE';
	}

	$response[$value]['markUp'] = $markUp;
	$response[$value]['isButton'] = $isButton;
}

echo json_encode($response);

Nun der Ajax request:

function list()
{
	var hr = new XMLHttpRequest();
	var url = "a.php";
	
	hr.onreadystatechange = function()
	{
		if (hr.readyState == 4 && hr.status == 200)
		{
			var div = document.getElementById("content_wrapper");
			
			var response = JSON.parse(hr.responseText);
			
			for(var key in response){
					
				div.innerHTML += response[key]['markUp'];	
				
				if(response[key]['isButton'] == 'TRUE'){
					document.getElementById("submit_"+key).addEventListener("click", function(event){
		event.preventDefault()
	});
					
				}
			}
		}
	}
	
	hr.open("POST", url, true)
	hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	hr.send();
}

Ja, so sieht es gerade aus, wenn ich kein Fehler beim tippen gemacht habe. Habe ich einen gar schrecklichen Denkfehler?

Jedenfalls ist das Element mit der ID vorhanden wenn document.getElementById("submit_"+key).addEventListener("click", function(event) zur Tat schreitet, da kommt aufjedenfall kein Fehler zurück.

Vielen Dank schonmal für eure Hilfe.

Gruß Jo