2010-06-17 9 views
0

J'ai une fonction get/post/JSON sur une page aspx. Cette page ajoute les données saisies dans une zone de texte à une table remplie par javascript. Lorsque l'utilisateur sélectionne le bouton Envoyer. Si la zone de texte n'est pas vide, un bouton contextuel indiquant à l'utilisateur que les données de la zone de texte ne sont pas enregistrées dans la table. Comment est-ce que j'ai un affichage de confirmation "ok/cancel" sur l'action de publication dans le contrôleur? J'ai fait un rapide résumé de ce à quoi ressemble mon code.Comment ajouter une fenêtre de confirmation sur un bouton (action GET POST dans MVC)?

... 
<% using (Html.BeginForm("AddName", "Name", FormMethod.Post, new { id = "AddNameForm" })) { %> 
... 
<table id="displayNameTable" width= "100%">       
    <tr> 
     <th colspan="3">Names Already Added</th> 
    </tr> 
    <tr> 
     <td style="font-size:smaller;" class="name"></td> 
    </tr> 
</table> 
... 
<input name="Name" id="txtInjuryName" type="text" value="<%=test.Name %>" /> 
... 
<input type="submit" name="add" value="Add"/> 
<% } %> 
<form id="form1" runat="server"> 
      string confirmNext = ""; 
    if (test.Name == "") 
    { 
     confirmNext = "return confirm('It seems you have a name not added.\n\nAre Continue?')"; 
    }%> 
    <input type="submit" name="getNext" value="Next" onclick="<%=confirmNext%>" /> 
</form> 

Répondre

4
<script type="text/javascript"> 

    $(document).ready(function(){ $("#form1").bind("submit", function(){ 
     if(!confirm('It seems you have a name not added.\n\nAre Continue?')) 
       return false; 
     });}   
    }); 

</script> 
+0

+1 pour utiliser jQuery pour séparer les interactions côté client de l'élément html. Aide à la maintenabilité. – Amir

+0

C'est un bon moyen d'aller ... mais comment puis-je vérifier si la zone de texte est vide ou non ??? – MrM

+0

ajouter if ($ ("# txtInjuryName"). Val() == "") {...} – Gregoire

4

Vous pouvez utiliser l'événement onsubmit du formulaire:

<form id="form1" onsubmit="return confirm('It seems you have a name not added.\n\nAre Continue?')"> 
    <input type="submit" name="getNext" value="Next" /> 
</form> 

également pourquoi runat="server" dans une application ASP.NET MVC? Aussi, vous pourriez envisager de spécifier un action que ce formulaire est en train de poster et utiliser l'assistant Html.BeginForm comme pour votre premier formulaire.

Questions connexes