2010-05-16 2 views
0

У меня есть следующая ссылка. При щелчке, я хотел бы проверить поле item.primary_company и, если оно заполнено, дать пользователю предупреждение и спросить, хотят ли они продолжить. Как я могу это сделать?Как дать подтверждение пользователя до ActionLink на основе проверки

<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

Я изменил к этому, но ничего не происходит при нажатии. Кроме того, я не знаю, как ссылаться на элемент, чтобы выполнить проверку в поле primary_company. Я хочу только сообщение, чтобы показать, если item.primary_company.HasValue. Я также хотел бы показать item.company1.company_name в сообщении подтверждения.

<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> 

ответ

1

Код в отредактированном примере терпит неудачу из-за двойного использования doublequotes.

Относительно подтверждения только с именем компании, если item.primary_company.HasValue имеет значение true, это может быть сделано либо на стороне сервера, либо на стороне клиента.

стороны сервера, изменить, как ссылка работает в зависимости от статуса:

<% 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> 

стороны клиента, отправить параметр в JavaScript, говоря это или нет, чтобы подтвердить:

<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

Большое вам спасибо за оба примера. Это действительно помогает! – 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> 

и в JavaScript:

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

И с помощью 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?'); 
    }); 
}); 

UPDATE:

Забыла избежать company's апостроф:

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

ссылки работает , но я не получаю сообщение подтверждения. – RememberME

+0

Извините, я допустил ошибку и не избежал апострофы компании. См. Мое обновление. –

+0

Я сам это добавил. Тем не менее, пока не было подтверждения подтверждения. Я добавил «предупреждение» перед подтверждением возврата, и это тоже не срабатывало. – RememberME