Jquery Div单击和自动完成密码对话框问题
如果你想自动完成密码呢?我在这里使用类似的东西。。。我使用的是Div(id=loginButton),它有一些图像-我不想在MVC应用程序()中使用按钮控件,也不想使用图像按钮。我有一个隐藏的输入控件,它实际上是隐藏的按钮(id=submit\u btn) 因此,在div的(id=loginButton)单击上,我想调用隐藏的输入控件(id=submit_btn)及其提交操作 HTML: 函数Login()使用Ajax,无需下载文件对话框,但我还需要自动完成密码对话框Jquery Div单击和自动完成密码对话框问题,jquery,ajax,html,autocomplete,passwords,Jquery,Ajax,Html,Autocomplete,Passwords,如果你想自动完成密码呢?我在这里使用类似的东西。。。我使用的是Div(id=loginButton),它有一些图像-我不想在MVC应用程序()中使用按钮控件,也不想使用图像按钮。我有一个隐藏的输入控件,它实际上是隐藏的按钮(id=submit\u btn) 因此,在div的(id=loginButton)单击上,我想调用隐藏的输入控件(id=submit_btn)及其提交操作 HTML: 函数Login()使用Ajax,无需下载文件对话框,但我还需要自动完成密码对话框 function Log
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;
}
当你只使用
<input type="submit">
这是行不通的。用户已登录,但未提醒浏览器存储密码
我需要这个。我终于找到了解决办法。
如果我们想提交带有自动完成密码的表单,我们可以使用图像而不是按钮:
<input type="image" id="loginImg" src="../Images/loginImage.png"
class="loginButton" />
使用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>
m、 用户名,新的{id=“txtUsername”,@class=“inputField”,tabIndex=1,AUTOCOMPLETE=“on”,
onKeyPress=“返回提交者(此事件)”})%>
m、 用户名,“,新的{@class=“redStar”})%>
m、 新密码
{
id=“txtPassword”@class=“inputField”,AUTOCOMPLETE=“on”,tabIndex=2,
onKeyPress=“返回提交者(此事件)”})%>
m、 密码,“,新的{@class=“redStar”})%>
c、 记住,新的{id=“chbRememberMe”,tabIndex=3,onKeyPress=“返回提交者(这个事件,”+System.Web.HttpContext.Current.Request.Params[“ReturnUrl”]+“)”})%>
修正提交人方法-触发控制时必须定义类型
$("#loginImg").trigger("submit");
下面是整个JavaScript方法:
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("submit");
return false;
}
else
return true;
}
你到底为什么要自动完成密码字段?换句话说:请记下你网站的URL,这样我就可以记下它以备不时之需。好吧,这是客户想要的,因为它不是网站,而是供公司内部使用的应用程序:)所以,主要的问题是如何模拟提交操作,在这种情况下,使用div click。
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;
}
<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>
$("#loginImg").trigger("submit");
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("submit");
return false;
}
else
return true;
}