11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Voila j'utilise dans une page un calendrier pour aider a la saisie d'une date. Ce calendrier s'ouvre dans un popup si javascript est activé ou dans une nouvelle fenetre avec le lien si js est désactivé.

<a href="calendar.asp?obj_parent=date_reception&id_stage=2&action=en_modification"
target="_blank"
onclick="javascript:window.open('calendar.asp?obj_parent=date_reception&id_stage=2&action=en_modification',
'Assistant calendrier','titlebar=no, menubar=no, status=no, resizable=true,
scrollbars=auto,width=200, height=150');
return false;">Assistant date</a>

Ou j'aime pas trop forcer le target pour l'utilisateur mais bon.
Donc ça marche très bien.
Dans ma page calendar.asp, le calendrier se recharge sans js donc la encore pas de pb.

Mais je souhaite réactualiser le champ correspondant dans ma fenetre parent. En javascript la modif est bien prise en compte :

<script type="text/javascript">
	function actualiser(){
		if(window.opener.document.forms["frm_stage"].elements["date_reception"]){
			window.opener.document.forms["frm_stage"].elements["date_reception"].value
= "15/01/2006";
		}
		else{
			alert("Erreur ! DEBUG");
		}
		
		window.close();
	}
</script>


La fonction est appelée sur le onsubmit du form
ulaire dans calendar.asp

<form method="post" action="gestion_offres.asp" target="_parent"
[b]onsubmit="javascript:actualiser();return false;"[/b]>
	<input type="hidden" name="id_stage" value="2">
	<input type="hidden" name="date_reception" value="15/01/2006" >
	<input type="submit" name="en_modification" value="valider">
</form>


Et donc si javascript est désactivé, le formulaire est bien posté, mais une nouvelle fenetre est ouverte au lieu de le faire dans la fenetre parent. (j'aime pas non plus le target="_parent" pour le form, je savais meme pas que ça existait et je sais que ça me posera pb quand je passerai le site en xhtml mais bon)

Voila je voulais donc savoir si quelqu'un avait une solution pour résoudre ou contourner le pb. Smiley biggrin merci d'avance
Modifié par nelero (23 Jan 2006 - 13:23)