Jquery Div单击和自动完成密码对话框问题

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

如果你想自动完成密码呢?我在这里使用类似的东西。。。我使用的是Div(id=loginButton),它有一些图像-我不想在MVC应用程序()中使用按钮控件,也不想使用图像按钮。我有一个隐藏的输入控件,它实际上是隐藏的按钮(id=submit\u btn)

因此,在div的(id=loginButton)单击上,我想调用隐藏的输入控件(id=submit_btn)及其提交操作

HTML:

函数Login()使用Ajax,无需下载文件对话框,但我还需要自动完成密码对话框

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