使用jquery根据用户输入自动生成名称

问题描述 投票:2回答:4

我有两个输入字段我想根据用户输入命名,但这个名称应该是小写,单词之间的空格变为“ - ”。我这样做

$(function() {
  $("#name").keyup(function() {
    var name = $("#name").val();
    var alias = name.charAt(0);
    $("#alias").val(alias);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<input name="name" class="text-input medium-input" type="text" id="name" value="" />

<input name="alias" class="text-input medium-input" type="text" id="alias" />

这给了我结果我在第一个输入字段写“arslan”然后在第二个输入字段中显示“a” 只显示一个字母

javascript jquery html
4个回答
5
投票

我想根据用户输入命名,但这个名称应该是小写,单词之间的空格变为“ - ”。

使用replace

$("#alias").val( name.replace( /\s+/g, "-" ) );

你的功能应该是这样的

 $(function() {
     $("#name").keyup(function() {
        var name = $("#name").val();
        $("#alias").val( name.toLowerCase().replace( /\s+/g, "-" ) );
     });
  });

1
投票

您应该将名称输入中的整个条目复制到别名,同时用' - '替换空格并将其转换为小写。

$("#name").keyup(function() {
  $("#alias").val($(this).val().replace(" ", "-").toLowerCase());
});

0
投票

简单解决方案

var name = $("#name").val().toLowerCase();
var alias = name.split(" ").join("-");
$("#alias").val(alias);

0
投票

这会对你有所帮助

 $(function() {
      $("#name").keyup(function() {
       var name = $("#name").val().toLowerCase();
       $("#alias").val(name.replace(/-/g,' '));
     });
  });

replace将改变名称中所有带有空格的-

© www.soinside.com 2019 - 2024. All rights reserved.