Использование ссылки вместо кнопки в beginform - PullRequest
2 голосов
/ 15 августа 2011

Как использовать ссылку вместо кнопки для отправки формы в beginform

Это то, что у меня есть, но я не хочу использовать кнопку

           <% using (Html.BeginForm())
             { %>
             - <%: role %>
             <%: Html.Hidden("Username", user) %>
             <%: Html.Hidden("RoleToDelete", role) %>
             <button type="submit">X</button>
          <% } %> 

Спасибо

Ответы [ 3 ]

2 голосов
/ 15 августа 2011

Добавьте JavaScript по ссылке:

<a href="#" onclick="document.nameofyourform.submit();">X</a>

Вам понадобится какой-то метод идентификации вашей формы, чтобы вы могли вызвать метод submit связанного с ним объекта, чтобы сгенерированный html выглядел примерно так:

<form id="myform" name="nameofyourform" action="..." method="...">
...
</form>

Идентификатор позволит вам сделать document.getElementById('myform'.submit(), и имя будет работать, как в примере <a> выше.

Конечно, все зависит от Javascript. Если вы нацелены на более старые / js-лишенные браузеры, вы можете отправить форму только с помощью действительной кнопки отправки

1 голос
/ 15 августа 2011

Поскольку вы используете MVC, я предполагаю, что вы также будете использовать JQuery:

<a href="#" onclick="$(this).parents('form').submit();" >Submit</a>

Недостатки:

  • не работает при нажатии Enter (обходной путь:удерживайте кнопку отправки, но расположите ее вне экрана)

  • не работает, когда JS отключен в браузере

0 голосов
/ 08 июня 2015

Сначала необходимо указать имя формы с помощью BeginForm, а затем указать ее в событии onclick ссылки.

<% using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { id = "deletionform" }))
{ %>
- <%: role %>
<%: Html.Hidden("Username", user) %>
<%: Html.Hidden("RoleToDelete", role) %>
<a onclick="deletionform.submit();">X</button>
<% } %> 
...