Plusieurs forms dans une page ? Ou comment changer le bouton par défaut ? [Résolu]

Signaler
Messages postés
69
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
26 juillet 2007
-
Messages postés
69
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
26 juillet 2007
-
Bonjour à tous !


Je n'ai fait que quelques essais en asp.net 1.1, jamais d'appli complète, pas eu le temps ... J'ai fait beaucoup d'ASP classique, et je suis tombé sur un os en voulant me mettre sérieusement à l'asp.net en voulant réécrire un site actuel, histoire de profiter des nouvelles fonctionnalités pour l'étendre. L'os, c'est là : il m'arrivait bien souvent d'avoir plusieurs formulaires sur une page web.


Exemple : sur une page d'accueil, un cadre en haut de la page pour ouvrir une session (deux textbox login et password, avec un bouton login), un autre cadre plus bas pour souscrire à une newsletter (un textbox pour l'email et un bouton pour souscrire).


Si je reproduis tout ça dans une page aspx, tant que tout le monde va consciensieusement cliquer avec sa souris sur le bon bouton, tout va bien. Mais ça se corse quand on complète la case et on confirme en tapant sur la touche "entrée". Là, c'est le bouton par défaut qui est envoyé, grosso modo le premier bouton submit de la page. Ou pour faire simple : je tape mon email dans le textbox pour souscrire à une newsletter, et j'appuie sur entrée. Là c'est le bouton login du haut de la page qui est envoyé, et qui m'incendie en me disant que mon login est erroné ...


Comment m'en sortir ???


Merci par avance !


Stéphane


P.S. : Pour exemple : je parle de la page d'accueil du site http://www.aeroclub-entzheim.com/ qui est actuellement en asp classique, et que je voudrais migrer en présentation identique en asp.net ...

5 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Bonjour,

Dans ASP.net 2, les Panel possedent la propriété DefaultButton ;) pour du 1.1 il fallait ecrire soit meme son js.


<HR>
Cyril - MVS - MCP
Messages postés
192
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
9 mars 2007
1
Bonjour,

Je pense qu'il y a juste à positionner en Javascript le focus sur le bon bouton quand l'utilisateur entre sur une zone de saisie particulière.

TiK - MCAD.NET
http://bonnevault.net/cs/blogs/tikrimi
http://www.objectif-services.com
Messages postés
69
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
26 juillet 2007

Comment faire ? Car si l'utilisateur entre dans une zone de texte, le focus est dans la fameuse zone, pas sur un bouton submit ...
Messages postés
69
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
26 juillet 2007

Bon ben après avoir bricolé dans tous les sens, je pense avoir trouvé une solution qui m'énerve par son côté "bricolo" mais que je vais devoir adopter : je passe par un javascript pour définir ou vider la propriété "disabled" du bouton qui va avec chaque textbox, en utilisant les évênements onfocus et onblur.

Grosso modo ça donne ça dans le code de la page : (dans le Page_Load je définis Button1.Enabled et Button2.Enabled à false)


<%
@
Page
Language="C#"
AutoEventWireup="true"
CodeFile="Default.aspx.cs"
Inherits="_Default" %>

<!DOCTYPE
html
PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
>
<head
runat="server">
<title>Page sans titre
</title>
<script
type="text/javascript"
language="javascript">
<!--

function disable(b)
{
b.disabled =
"disabled";
}

function enable(b)
{
b.disabled =
"";
}
-->

</script>
</head>

<form
id="form1"
runat="server"
OnFocus="alert('Focus');">

Case 1 :

Case 2 :

</form>

</html>

Voilà ... ça m'énerve mais ça évitera que le mauvais bouton ne soit cliqué ... Si jamais quelqu'un a une autre solution je suis preneur ...

A+

Stéphane
Messages postés
69
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
26 juillet 2007

Jesusonline, je savais que tu étais un pro ! C'est exactement ce qu'il me fallait !!!

Je te remercie pour ton aide !

A+

Stéphane