【问题标题】:Dynamically set value of "confirm password" to equal the first password field动态设置“确认密码”的值等于第一个密码字段
【发布时间】:2013-02-25 10:36:15
【问题描述】:

我想通过删除注册表单上的“密码确认”字段来运行测试,看看它是否会更好地执行。

在我的 A/B 测试解决方案中,我通过 jquery 将第二个密码输入显示属性值设置为无:

$('#password').keypress(function() {
    $('#password2').val($(this).val());
});

我进行了现场测试,但它说密码不匹配。我确实看到 #password2 在我输入时包含信息(当将显示设置回阻止时),但它似乎会在 #password2 中输入错误的文本。

那么如何正确重复密码呢?

【问题讨论】:

  • 我会摆脱 #password2 并实施新的注册表单,如果它在没有...的情况下表现更好,但我正在使用 A/B 测试解决方案并且验证是在服务器端进行的,所以我不能只是删除它。
  • 您期望什么样的性能提升??
  • 如果我知道的话,我早就实现了……它是一个更大的 MVT 测试的一部分,有很多变化。

标签: jquery input passwords


【解决方案1】:

使用 jquery 的change 事件。

$('#password').change(function() {
    $('#password2').val($(this).val());
});

我已经在本地进行了测试,并且工作正常。

【讨论】:

    【解决方案2】:

    你也可以使用.onjQuery方法。

    $('#password').on('change',(function()
    {
        $('#password2').val($(this).val());
    });
    

    .on(... 是非常新的 (jQuery 1.7),它可以使用委托事件覆盖现场场景,这是一种更快的附加行为方式。

    官方文档:http://api.jquery.com/on/

    on() 事件处理程序旨在替换 .bind().delegate() 事件处理程序。

    您还可以使用 eventsMap 来指定附加到一个元素的多个事件。

    $('#password').on({
      change: function() {
        event.preventDefault();
        $('#password2').val($(this).val());
      },
      click: function() {
        console.log('clicked!');
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2014-06-14
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多