使用jQuery拆分表单字段值

时间:2017-03-13 11:24:09

标签: javascript jquery

我正在编写一个脚本,该脚本从一个字段获取数据并使用其中的一部分填充第二个字段。到目前为止它很有用: - )

但是,现在我想从一个字段中移动一部分值。

例如,如果用户输入Helena Bonham-Carter,则会使用last_name填充Bonham-Carter字段,并将full_name值保留为{{ 1}}。

演示: https://jsfiddle.net/ygvtb7yn/

HTML:

Helena Bonham-Carter

JS:

<p><input type="text" name="full_name" id="full_name" placeholder="Full Name"/></p>
<p><input type="text" name="last_name" id="last_name"></p>

5 个答案:

答案 0 :(得分:1)

您可以使用JavaScript split()

$('#full_name').keyup(function(){
   $('#last_name').val(this.value.split(' ')[1]);
});

JSFiddle

-

修改:如果名称中可能有多个空格,请使用以下代码:

$('#full_name').keyup(function() {
    if (this.value.indexOf(' ') > 0)
        $('#last_name').val(this.value.substr(this.value.indexOf(' ') + 1));
});

JSFiddle

答案 1 :(得分:1)

使用$('#last_name').val($(this).val().split(" ")[1]);

但是,对于该人的名字有两个单词或该人输入中间名的情况,这并不能保证正确的姓氏。

这样做基本上是获得用户输入的第二部分。在空间之后

答案 2 :(得分:0)

你必须告诉用户输入名字,如最后一个(空格)或最后一个。

Variable

答案 3 :(得分:0)

如果我理解正确,这可能会解决您的问题

如果没有姓氏名字填充到姓氏,这将解决 如果姓氏只填充姓氏

$('#full_name').keyup(function() {
  var splitedName =$(this).val().split(" ");
  if (splitedName.length > 1)
    $('#last_name').val($(this).val().replace(splitedName[0],""));
  else
    $('#last_name').val($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
  <input type="text" name="full_name" id="full_name" placeholder="Full Name" />
</p>

<p>
  <input type="text" name="last_name" id="last_name">
</p>

答案 4 :(得分:0)

我想你只想要姓氏,

如果中间名也是

,下面的代码会处理这个问题
 $('#full_name').keyup(function(){
    full_name  = (this.value).split(" ");
    if(full_name.length>1)
   $('#last_name').val(full_name[full_name.length-1]);
});

/如果条件检查全名是否没有空格那么它只是名字。

full_name[full_name.length-1] 

获取姓氏,以防有多个中间名