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

时间:2018-02-15 13:10:46

标签: javascript jquery html

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



$(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" />
&#13;
&#13;
&#13;

这给了我结果我写了&#34; arslan&#34;在第一个输入字段然后显示&#34; a&#34;在第二个输入栏
只显示一个字母

4 个答案:

答案 0 :(得分:5)

  

我想根据用户输入命名,但此名称应为小写   单词之间的空格变为&#34; - &#34;。

使用replace

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

您的功能应该是

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

答案 1 :(得分:1)

您应该将名称输入中的整个条目复制到别名,同时用&#39; - &#39;替换空格。把它变成小写。

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

答案 2 :(得分:0)

简单解决方案

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

答案 3 :(得分:0)

这会对你有所帮助

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

replace将更改名称中包含空格

的所有-