【问题标题】:How to identify save browser username and password in jqueryjquery如何识别保存浏览器的用户名和密码
【发布时间】:2016-08-04 08:52:39
【问题描述】:

当用户名或密码为空时,我需要禁用登录按钮。

请在下面找到代码:

$(document).ready(function(){

    $('input').on('keyup  blur mouseenter', function(e) {


       if($("#userName").val().length!==0 && $.trim($('#userName').val()) !== '' && $("#password").val().length!==0 && $.trim($('#password').val())!== ''){

            $('#submitLogin').attr('disabled',false);
        }
    });
});

请在jsp页面下方找到提交输入:

 <input class="button" name="submit" type="submit" id ="submitLogin"value="Login" disabled="true" ></div>

如上所示,我设法在 jquery 中做到这一点,但我的问题是浏览器保存的用户名和密码。

那是用户第一次登录应用程序浏览器时要求用户保存用户名和密码,用户点击是。

所以一旦用户名/密码被保存,下次用户打开登录页面时,用户名和密码已经填写,但登录按钮仍然被禁用。

这是禁用的,因为即使输入的用户名/密码已经填写,当它调用jquery方法时,两个输入文本的值都是空的。

但是,当用户再次单击时,用户名和密码将被初始化并启用 submitLogin。

知道如何在第一次加载页面时获取保存的用户名和密码的值,以便启用登录输入吗?

提前感谢您的帮助。

【问题讨论】:

  • 如果将匿名函数设为命名函数并在document.ready() 中调用它会发生什么?这意味着您像现在一样在值更改时运行该函数,并且在页面加载开始时运行一次。

标签: javascript jquery html spring-mvc spring-security


【解决方案1】:

尝试$.removeAttr()$.change() 并像这样使用输入input class="button" name="submit" type="submit" id="submitLogin" value="Login"&gt;

$(document).ready(function() {

  if ($("#userName").val().length !== 0 && $.trim($('#userName').val()) !== '' && $("#password").val().length !== 0 && $.trim($('#password').val()) !== '') {

    $('#submitLogin').removeAttr('disabled');
  } else {
    $('#submitLogin').attr('disabled', "");
  }

  $('input').on('change keyup  blur mouseenter ', function(e) {


    if ($("#userName").val().length !== 0 && $.trim($('#userName').val()) !== '' && $("#password").val().length !== 0 && $.trim($('#password').val()) !== '') {

      $('#submitLogin').removeAttr('disabled');
    } else {
      $('#submitLogin').attr('disabled', "");
    }

  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

<input type='text' id='userName' />
<input type="password" id="password"/>
<input class="button" name="submit" type="submit" id="submitLogin" value="Login">

【讨论】:

  • 您好,我添加了 $.removeAttr() 并且在加载时它正在工作,但是当用户登录并单击注销时,尽管填写了用户名和密码,但仍会重定向到登录页面,提交按钮是禁用,有什么提示吗?
  • 工作正常,下次我不会在 hmtl 中定义禁用,而是让 jquery 处理它
【解决方案2】:

    $(document).ready(function(){

        $('input').on('keyup blur mouseenter', function(e) {

            if($.trim($('#userName').val()) && $.trim($('#password').val())){

                $('#submitLogin').prop('disabled',false);
            }
        });
    });
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="//cdn.bootcss.com/jquery/2.2.1/jquery.min.js"></script>
</head>
<body>
<input id="userName">
<input id="password">
<input class="button" name="submit" type="submit" id ="submitLogin"value="Login" disabled="disabled" ></div>
</body>
</html>

【讨论】:

  • attr 和 prop 都可以,但我建议 prop 设置为 disabled。
  • 欢迎来到 SO。感谢您回答一个问题。请记住,一个好的答案包含对 OP 应该做什么的解释。这有助于 OP 和未来的成员在类似问题上寻找答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 1970-01-01
  • 2019-12-30
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
相关资源
最近更新 更多