2009-09-03 6 views
0

Je travaille sur une page web qui enregistre des informations sur un utilisateur en cliquant sur un bouton puis redirige la page.Question sur javascript alert asp.net C#

Cependant, je veux alerter l'utilisateur s'il/elle oublie de remplir une valeur dans l'un des contrôles. et demander de corriger l'erreur et cliquez à nouveau sur le bouton Enregistrer ..

J'ai implémenté une fonction similaire avec confirmbox mais comme la boîte d'alerte n'a pas de valeur de retour je me demandais si une telle implémentation est possible?

Répondre

1

côté serveur

<asp:Button ID="MyButton" runat="server" OnClientClick="return myFunction();" OnClick="MyButton_Click" Text="Save" /> 

côté client

function myFunction() { 
    if (document.getElementById("<%=this.MyFieldName.ClientID%>").value.length == 0) { 
     alert('Please fill in the field.'); 
     return false; 
    } 

    return true; 
} 
+0

Merci pour l'aide .. mais pour une raison quelconque, le code ne fonctionne pas sur ma page Web. Où le code javascript doit-il être placé? dans la page maître ou la page avec le bouton –

+0

Placez-le dans la page qui a le bouton. – ChaosPandion

+0

Merci encore ... pour une raison quelconque le doc.getbyid ne travaillait pas sur le nom réel des éléments, il a dû être changé en son nom d'exécution en ajoutant ctl00 $ ContentPlaceHolder1 –

0

Je ne pense pas que vous avez besoin d'une valeur de retour. Votre fonction peut annuler la soumission du bouton en renvoyant simplement false.

function myBtnClick() 
{ 
    if (document.getElementById("myTextBox").value == "") 
    { 
     alert("You forgot to fill it in!"); 
     return false; 
    } 

    return true; 
} 
1

Vous pouvez également utiliser un asp: tag RequiredFieldValidator et laisser la logique de validation ASP.Net faire toutes les vérifications et l'utilisateur demandant pour vous.

+0

Vrai, mais vous obtenez un contrôle total sur quoi et comment les choses se passent si vous configurez votre propre fonction. – ChaosPandion

0

Ou vous pouvez modifier le texte dans votre zone d'alerte à une question et utiliser une boîte de confirmation à la place:

if (document.getElementById('myTextBox').value == "") 
{ 
    return confirm('Are you sure you want to exit without filling in ... ?'); 
} 
1

Au lieu d'aller valider avec des boîtes personnalisées JavaScript et alerte, essayez de réutiliser la norme ASP. contrôles de validation nets. Il y en a beaucoup pour les champs obligatoires, les validateurs de comparaison, les validateurs personnalisés, etc. L'avantage est que vous utilisez des mécanismes standard et que vous pouvez y accéder pour effectuer la validation côté serveur et côté client. La validation côté serveur est importante si votre utilisateur a désactivé JavaScript dans son navigateur, ce qui semble toujours se produire.

En outre, je préfère réellement que les choses se passent directement sur la page et non avec des boîtes d'alerte (c'est en quelque sorte l'ancienne façon de faire les choses). Les boîtes d'alerte diminuent l'expérience de l'utilisateur car il doit continuellement cliquer dessus et de plus il doit lire ce qui s'est passé, tandis que si l'erreur est affichée directement sous sa source, elle est plus facile à voir (du point de vue de l'utilisabilité).

Vous pouvez également consulter le mécanisme de validation jQuery. Pour autant que je sache, il existe un.