Javascript 使用jQuery拆分表单字段值

Javascript 使用jQuery拆分表单字段值,javascript,jquery,Javascript,Jquery,我正在编写一个脚本,它从一个字段中获取数据,并用其中的一部分填充第二个字段。到目前为止效果很好:-) 但是,现在我只想从一个字段中移动一部分值 例如,如果用户输入Helena Bonham Carter,它将用Bonham Carter填充姓氏字段,并将全名值保留为Helena Bonham Carter 演示: HTML: <p><input type="text" name="full_name" id="full_name" placeholder="Full Name

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

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

例如,如果用户输入
Helena Bonham Carter
,它将用
Bonham Carter
填充
姓氏
字段,并将
全名
值保留为
Helena Bonham Carter

演示:

HTML:

<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>
$('#full_name').keyup(function(){
   $('#last_name').val(this.value);
});

您可以使用JavaScript
split()

--

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

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

您可以使用JavaScript
split()

--

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

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

你必须告诉用户输入名字(第一个)(最后一个)或中间的任何一个。< /P>
 $('#last_name').val($(this).val().split(" ")[1])

<>你必须告诉用户输入第一个(空间)最后或中间的任何名称。< /P>
 $('#last_name').val($(this).val().split(" ")[1])
使用
$('#姓氏').val($(this.val().split(“”[1])

但这并不能保证一个人的名字有两个单词,或者当这个人输入中间名时,他的姓氏是正确的

这基本上是获取用户输入的第二部分。在空格后使用
$('#last_name').val($(this.val().split(“”[1])

但这并不能保证一个人的名字有两个单词,或者当这个人输入中间名时,他的姓氏是正确的


这基本上是获取用户输入的第二部分。空格后

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

这将解决如果没有姓氏first Name填充到姓氏的问题 如果姓氏只填充姓氏

$('#全名').keyup(函数(){
var splitedName=$(this.val().split(“”);
如果(splitedName.length>1)
$('#last_name').val($(this.val().replace(splitedName[0],“”));
其他的
$('#姓氏').val($(this.val());
});



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

这将解决如果没有姓氏first Name填充到姓氏的问题 如果姓氏只填充姓氏

$('#全名').keyup(函数(){
var splitedName=$(this.val().split(“”);
如果(splitedName.length>1)
$('#last_name').val($(this.val().replace(splitedName[0],“”));
其他的
$('#姓氏').val($(this.val());
});



我想你只需要姓

下面的代码在有中间名的情况下处理这个问题

 $('#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] 

如果有很多中间名的话,我想你只需要姓氏

下面的代码在有中间名的情况下处理这个问题

 $('#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] 

如果有很多中间名,你怎么知道是姓的类型值呢?如果Joan-Marie Bonham Carter呢?这是一个很好的观点-我基本上会将第一个空格后的任何内容都视为姓氏(即使它可能是中间名,我同意)。在这种情况下,使用
$(“#last_name”)。val($(this).val().split(“”[1]);
但是如果输入的是
Joan Marie Bonham Carter
姓氏将
Marie Bonham Carter
@guradio,你应该回答这个问题。唯一的缺点是,如果你有多个姓氏,它不会添加到姓氏字段:(IMHO,你只需提供不同的框,让用户根据需要填写即可。曾广泛参与过与航空业相关的编程工作(我们在航空业有很多名字),我可以告诉你,很难预见所有不同的组合方式。你如何知道这是类型值的姓氏?如果Joan Marie Bonham Carter呢?这是一个很好的观点-我基本上会将第一个空格后的任何内容都视为姓氏(即使它可能是中间名,我同意)。在这种情况下,请使用
$(“#姓氏”).val($(this).val().split(“”[1])
但如果输入的是
琼·玛丽·邦汉·卡特
姓氏将
玛丽·邦汉·卡特
@gura,您应该回答这个问题。唯一的缺点是,如果您有多个姓氏,它不会添加到姓氏字段:(IMHO,你只需提供不同的框,让用户根据需要填写即可。曾广泛参与过与航空业相关的编程工作(我们在航空业有很多名字),我可以告诉你,很难预见它们的不同组合方式谢谢你的回答。你能告诉我当你输入名字时会发生什么吗?谢谢你的回答。你能告诉我当你输入名字时会发生什么吗n Der Beek
?那么姓“Beek”,根据我所知道的命名惯例。有很多命名惯例。在我提到的例子中,
詹姆斯·大卫·范德比克·Jr.
是一个真实的人。詹姆斯的姓是
范德比克
这并不是真的不好的答案,而是用例本身。没有好的方法来做OP想要做的事情,不是真的。那么
J呢艾姆斯·范德比克
?根据我所知的命名惯例,姓氏是“比克”。有很多命名惯例。在我提到的例子中,
詹姆斯·大卫·范德比克是一个真实的人。詹姆斯的姓氏是
范德比克
,答案并不坏,而是用例本身。没有好的方法来解释