javascript - 如何使用 jQuery 或 javascript 自动创建结合两个字段的用户名?

标签 javascript jquery

我编写了以下代码:

var fname = "";
var lname = "";
var username = "";

$('#new-user-form input[name=fname]').on('keyup', function() {
    var fname = $('#new-user-form input[name=fname]').val().substring(0,1).toLowerCase();
    var username = fname + lname;
    $('#new-user-form input[name=username]').val(username);
});
$('#new-user-form input[name=lname]').on('keyup', function() {
    var lname = $('#new-user-form input[name=lname]').val().toLowerCase();
    var username = fname + lname;
    $('#new-user-form input[name=username]').val(username);
});

我想要的是用户名字段自动填充名字的第一个字母和所有姓氏。它有点有效,但对于每个领域都是单独的。如果我在 fname 字段中输入 Mario,则字母 m 会出现在用户名字段中,但一旦我开始在 lname 字段中输入,用户名字段就会被清除,只显示小写的姓氏。我错过了什么?

提前致谢!

最佳答案

您基本上覆盖了用户名。当您编辑其中任何一个时,您必须读取名字和姓氏。您可以创建一个函数并将其作为回调传递。

function createUsername()  {
 var fname = $('#new-user-form input[name=fname]').val().substring(0,1).toLowerCase();

var lname = $('#new-user-form input[name=lname]').val().toLowerCase();
  var username = fname + lname;
 $('#new-user-form input[name=username]').val(username);
}

$('#new-user-form input[name=fname]').on('keyup', createUsername);
$('#new-user-form input[name=lname]').on('keyup', createUsername);

Link to a working JSFiddle

关于javascript - 如何使用 jQuery 或 javascript 自动创建结合两个字段的用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43835286/

相关文章:

javascript - Angular .js :12520 TypeError: Cannot read property 'post' of undefined

javascript - 替换多行中字符串的所有实例

javascript - 如何在 Express 中向 req.url 添加查询字符串?

javascript - 用户单击组合框后重新加载页面(有一些规则)

jquery - 如果只有 h3 元素和空内容 div,如何删除父 div

javascript - 隐藏 div 在 IE8 中不起作用

javascript - 如果选中复选框,则传递复选框值

javascript - 如何按图像源名称对 UL 下的所有 LI 进行排序?

javascript - 在没有javascript的情况下悬停显示子菜单

javascript - 递归函数中的奇怪行为