2010-10-06 6 views
3

J'ai deux boutons à l'intérieur d'un formulaire: appelReset Submit bouton ne fonctionne pas, en utilisant MVC 2

<% using (Html.BeginForm()) {%> 

    <input type="submit" value="Filter" /> 
    <input type="reset" value="Clear Filter" /> 

Les champs en question:

 <td> 
      <%:Html.TextBox("filterId", Model.IdFilter, new {style="width:100px"}) %> 
     </td> 
     <td> 
      <%:Html.TextBox("filterTitle", Model.TitleFilter, new {style="width:500px"}) %> 
     </td> 
     <td> 
      <%:Html.TextBox("filterStatus", Model.StatusFilter, new {style="width:100px"}) %> 
     </td> 

Le premier bouton appelle l'action de formulaire. Le second bouton doit soit:

  1. Effacer le formulaire et pas poster
  2. Redirect à une autre action

Je ne sais pas pourquoi je suis tant de mal à cela, mais il semble comme il devrait y être un moyen très simple de le faire. Cependant, toutes les solutions que j'ai trouvées semblent trop compliquées pour cela.

Ai-je raté quelque chose?

EDIT: Voici la solution:

Modifier le bouton de réinitialisation à un bouton laideron avec un id:

<input type="button" value="Clear Filter" id="clearFilter" /> 

Ensuite, ajoutez ce script:

$(function() { 
     $("#clearFilter").click(function() { 
      $(':input', '#form0') 
       .not(':button, :submit, :reset, :hidden') 
       .val(''); 
      $('#form0').submit(); 
     }); 
    }) 

Répondre

0

Vous pouvez avoir à écrire un script personnalisé pour obtenir le comportement que vous voulez. C'est un bouton de réinitialisation, après tout, pas un bouton clair. À ce stade, si vous modifiez les valeurs des contrôles, puis cliquez sur le bouton de repos, le formulaire sera retourné à son état d'origine, de l'état de quel que soit le modèle lors de son rendu.

Questions connexes