我正在编写一个脚本,该脚本从一个字段获取数据并使用其中的一部分填充第二个字段。到目前为止它很有用: - )
但是,现在我想从一个字段中移动一部分值。
例如,如果用户输入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>
答案 0 :(得分:1)
您可以使用JavaScript split()
:
$('#full_name').keyup(function(){
$('#last_name').val(this.value.split(' ')[1]);
});
-
修改:如果名称中可能有多个空格,请使用以下代码:
$('#full_name').keyup(function() {
if (this.value.indexOf(' ') > 0)
$('#last_name').val(this.value.substr(this.value.indexOf(' ') + 1));
});
答案 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]
获取姓氏,以防有多个中间名