Я наконец нашел решение.
Если мы хотим отправить форму с паролем AUTOCOMPLETE , мы можем использовать изображение вместо кнопки :
<input type="image" id="loginImg" src="../Images/loginImage.png"
class="loginButton" />
Браузер попросит вас сохранить пароль , мы будем использовать изображение вместо кнопки и no Download File Появится диалоговое окно, если мы хотим вызвать действие в контроллере , как я сделал.
Итак, это будет окончательный HTML-код на тот случай, если кому-то понадобится:
При отправке формы (с действием по умолчанию «HandleLoginForm») вызовите javascript Метод входа:
$(document).ready(function() {
$("form[action$='HandleLoginForm']").submit(function() {
Login();
return false;
});
return false;
});
Метод входа в систему для входа пользователя с использованием действия контроллера MVC:
function Login() {
var urlData = $("#LoginForm").serialize();
if (returnUrl != "") {
urlData = $("#LoginForm").serialize() + "&returnUrl=" + returnUrl;
}
$.ajax({
url: $("#LoginForm").attr("action"),
type: "POST",
data: urlData,
dataType: "json",
success: function(result) {
if (result.Content != null) {
if (result.Valid) {
window.location = result.Content.toString();
}
else {
document.body.innerHTML = result.Content.toString();
}
}
}
});
return false;
}
Если мы хотим войти с помощью кнопки ввода, просто активируйте изображение.
function submitenter(myfield, e) {
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;
if (keycode == 13) {
$("#loginImg").trigger();
return false;
}
else
return true;
}
А вот и фрагменты HTML-кода:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% Html.EnableClientValidation(); %><!-- MVC2 validation requires this -->
<% using (Html.BeginForm("HandleLoginForm", "Login", FormMethod.Post,
new { id = "LoginForm" })) %>
<% {
%>
<div class="divDisplayNone errorDiv"> <!-- div for errors using MicrosoftMvcJQueryValidation.js-->
<%=Extensions.DisplayLoginError("DivErrorsHeader", "DivErrorsContent", Model) %>
</div>
<div class="leftDiv">
<label for="UserName">
<%=Resources.TextUsername%></label>
</div>
<div class="rightDiv">
<%= Html.TextBoxFor(m => m.UserName, new { id = "txtUsername", @class = "inputField", tabIndex=1, AUTOCOMPLETE = "on",
onKeyPress = "return submitenter(this,event)" })%>
<%= Html.ValidationMessageFor(m => m.UserName, "", new { @class = "redStar" })%>
</div>
<div class="leftDiv">
<label for="password">
<%=Resources.TextPassword%></label>
</div>
<div class="rightDiv">
<%= Html.PasswordFor(m => m.Password, new
{
id = "txtPassword", @class = "inputField", AUTOCOMPLETE = "on", tabIndex = 2,
onKeyPress = "return submitenter(this,event)" })%>
<%= Html.ValidationMessageFor(m => m.Password, "", new { @class = "redStar" })%>
</div>
<input type="image" id="loginImg" src="<%=Constants.ImageButtonNext %>"
class="loginButton" />
<div class="rightDiv">
<%= Html.CheckBoxFor(c => c.RememberMe, new { id = "chbRememberMe", tabIndex = 3, onKeyPress = "return submitenter(this,event,'"+System.Web.HttpContext.Current.Request.Params["ReturnUrl"]+"')" })%>
<label class="inline" for="rememberMe">
<%=Resources.TextRememberPassword %></label>
</div>
<% } %>
</asp:Content>