2010-05-16 2 views
0

J'ai le lien suivant. Au clic, je voudrais vérifier le champ item.primary_company et s'il est rempli, donner un avertissement à l'utilisateur et lui demander s'il souhaite continuer. Comment puis-je faire ceci?Comment donner un message de confirmation à l'utilisateur avant ActionLink en fonction de la validation

<a href="<%= Url.Action("Activate", new {id = item.company_id}) %>" class="fg=button fg-button-icon-solo ui-state-default ui-corner-all"><span class="ui-icon ui-icon-refresh"></span></a> 

EDIT

J'ai changé à cela, mais rien ne se passe quand on clique dessus. En outre, je ne sais pas comment référencer l'élément pour effectuer la vérification dans le champ primary_company. Je veux seulement message pour montrer si item.primary_company.HasValue. J'aimerais également montrer item.company1.company_name dans le message de confirmation.

<a href="#" onclick="return Actionclick("<%= Url.Action("Activate", new {id = item.company_id}) %>");" class="fg=button fg-button-icon-solo ui-state-default ui-corner-all"><span class="ui-icon ui-icon-refresh"></span></a> 


<script type="text/javascript"> 
function Actionclick(url) 
{ 
    alert("myclick"); 
    if (confirm('Do you want to activate this company\'s primary company and all other subsidiaries?')) 
     { 
      location.href(url); 
     } 

}; 
</script> 

Répondre

1

Le code dans votre exemple édité échoue en raison de la double utilisation de doublequotes. En ce qui concerne le fait de ne montrer que la confirmation avec le nom de la société si item.primary_company.HasValue est vrai, cela peut être fait côté serveur ou côté client.

côté serveur, modifier le fonctionnement du lien en fonction de l'état:

<% if (item.primary_company.HasValue) { %> 
<a href="#" onclick="return Actionclick('<%= Url.Action("Activate", new {id = item.company_id}) %>', '<%= Html.Encode(item.company1.company_name) %>');" 
    class="fg=button fg-button-icon-solo ui-state-default ui-corner-all"><span class="ui-icon ui-icon-refresh"></span></a> 
<% } else { %> 
<a href="<%= Url.Action("Activate", new {id = item.company_id}) %>" 
    class="fg=button fg-button-icon-solo ui-state-default ui-corner-all"><span class="ui-icon ui-icon-refresh"> 
     link</span></a> 
<% } %> 

<script type="text/javascript"> 
    function Actionclick(url,companyName) { 
     if (confirm('Confirm. CompanyName = ' + companyName)) { 
      location.href = url; 
     } 
    }; 
</script> 

côté client, envoyer un paramètre à javascript, lui disant de confirmer si oui ou non:

<a href="#" onclick="return Actionclick('<%= Url.Action("Activate", new {id = item.company_id}) %>', '<%= Html.Encode(item.company1.company_name) %>', <%= item.primary_company.HasValue ? "true" : "false" %>));" 
    class="fg=button fg-button-icon-solo ui-state-default ui-corner-all"><span class="ui-icon ui-icon-refresh"></span></a> 

<script type="text/javascript"> 
    function Actionclick(url,companyName,showConfirmation) { 
     if (showConfirmation) { 
      if (confirm('Confirm. CompanyName = ' + companyName)) { 
       location.href = url; 
      } 
     } 
     else { 
      location.href = url; 
     } 
    }; 
</script> 
+0

Merci beaucoup pour ces deux exemples. Cela aide vraiment! – RememberME

1
<a onclick="return companyClick(\"<%= Html.Encode(item.company_name) %>\");" href="<%= Url.Action("Activate", new { id = item.company_id }) %>" class="fg=button fg-button-icon-solo ui-state-default ui-corner-all"> 
    <span class="ui-icon ui-icon-refresh"></span> 
</a> 

et javascript:

function companyClick(companyName) { 
    return confirm(
     'Do you want to activate ' 
     + companyName + 
     ' company's primary company and all other subsidiaries?'); 
} 

Et en utilisant jQuery:

<a href="<%= Url.Action("Activate", new { id = item.company_id }) %>" title="<%= Html.Encode(item.company_name) %>" class="fg=button fg-button-icon-solo ui-state-default ui-corner-all"> 
    <span class="ui-icon ui-icon-refresh"></span> 
</a> 

$(function() { 
    $('a').click(function() { 
     return confirm(
      'Do you want to activate ' 
      + $(this).title + 
      ' company's primary company and all other subsidiaries?'); 
    }); 
}); 

MISE À JOUR:

J'ai oublié d'échapper company's apostrophe:

function companyClick(companyName) { 
    return confirm(
     'Do you want to activate ' 
     + companyName + 
     ' company\'s primary company and all other subsidiaries?'); 
} 
+0

Les travaux de liaison , mais je ne reçois pas le message de confirmation. – RememberME

+0

Désolé, j'ai fait une erreur et n'ai pas échappé à l'apostrophe 'company \ 's. S'il vous plaît voir ma mise à jour. –

+0

J'avais ajouté cela moi-même. Je n'obtenais toujours pas le message de confirmation. J'ai ajouté une "alerte" avant la confirmation de retour et cela n'a pas non plus été déclenché. – RememberME

Questions connexes