ASP.NET Форма MVC Отправляет со Ссылкой вместо Кнопки

Я хотел бы иметь простую форму входа в систему (или любую форму в этом отношении), и смочь отправить его, не с кнопкой, а со ссылкой.

Так нет input, но a.

Я видел много решений для этого типа вопроса, и я попробовал много различных вариантов, и каждый раз, когда ничего не происходит.

Я разделил весь JQuery от того, что я имею, таким образом, это - "основная" ситуация: что отсутствует, чтобы заставить его отправить форму?

<% using (Html.BeginForm("Login", "Account", FormMethod.Post, new { id = "loginForm" }))
  { %>
       <%= Html.TextBoxFor(x => x.UserName)%><br/>
       <%= Html.TextBoxFor(x => x.Password)%><br/>
       <a href="#" id="submit-link" class="button">Log In</a>
<%}%>
16
задан Mathieu 28 January 2013 в 01:28
поделиться

4 ответа

Единственный способ сделать это - использовать javascript:

<form id="fooForm" action="/foo" method="post">
    <a href="#" id="submit_link" class="button">Log In</a>
</form>

и javascript:

$(function() {
    $('a#submit_link').click(function() {
        $('form#fooForm').submit();
    });
});

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

<button type="submit">
    <a href="#" id="submit_link" class="button">Log In</a>
</button>

И попробуйте задайте стиль , чтобы он выглядел как якорь. Я предлагаю всегда использовать кнопки отправки для отправки форм. Это более семантически правильно, вы также обнаружите, что такие вещи, как нажатие клавиши Enter во время редактирования текстового поля, отправят форму, которая является своего рода родной. Так что делайте то, что семантически правильно, и делайте стили в CSS.

26
ответ дан 30 November 2019 в 15:35
поделиться

Если единственная причина, по которой вы хотите использовать ссылку вместо кнопки, - это изменить ее внешний вид (при сохранении той же функциональности), почему бы просто не стилизовать кнопку так, чтобы она выглядела как ссылка ...

<input type="submit" value="Submit the form" class="fakeLink"/>

<style type="text/css">

.fakeLink{
    border: 0px;
    background-color: transparent;
    color: blue;
    cursor: hand;
} 
.fakelink:hover{
    text-decoration: underline;
}

</style>

К сожалению, стиль «наведения» не работает с IE, но работает с Firefox.

Я не совсем уверен, что сделать кнопку отправки похожей на ссылку - это хорошая идея, но я уверен, что видел это раньше.

17
ответ дан 30 November 2019 в 15:35
поделиться

Вы можете добавить обработчик щелчка , чтобы сделать это следующим образом:

$(function() {
  $("#submit-link").click(function() {
    $("#loginForm").submit();
  });
});

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

<a href="#" class="submit-link button">Log In</a>

Затем укажите его таким образом:

$(".submit-link").click(function() {
  $(this).closest("form").submit();
});

Это заставит любую работать по отправке

, в которой он находится.

7
ответ дан 30 November 2019 в 15:35
поделиться

не могли бы вы просто поместить на него событие onclick?

<a href="#" id="submit-link" class="button" onclick="submitForm()">Log In</a>

<script type="text/javascript">
  function submitForm()
       {
          document.forms.item(0).submit();
       }
</script>
0
ответ дан 30 November 2019 в 15:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: