我想在一个隐藏的字段中获得两个值的名字和姓氏,两者之间留有空格。我尝试过使用此代码
jQuery(document).ready(function($) {
$('input[name="firstname"]').keyup(function() {
$('input[name="fullname"]').val($(this).val());
});
});
jQuery(document).ready(function($) {
$('input[name="lastname"]').keyup(function() {
$('input[name="fullname"]').val($(this).val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="firstname" value="">
<input type="text" name="lasttname" value="">
<input type="hidden" name="fullname" value="">
我不想要它。每次仅显示一个值。 有人可以帮我这个忙吗?
谢谢。
答案 0 :(得分:2)
问题是因为您要覆盖每个键条目上的隐藏字段的值。要解决此问题,您可以在两个输入上使用单个事件处理程序,以将名字和姓氏连接在一起。试试这个:
jQuery(function($) {
var $firstname = $('input[name="firstname"]');
var $lastname = $('input[name="lastname"]');
var $fullname = $('input[name="fullname"]');
$firstname.add($lastname).keyup(function() {
$fullname.val($firstname.val() + ' ' + $lastname.val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="firstname" value="" />
<input type="text" name="lastname" value="" /><br /><br />
<input type="text" name="fullname" value="" readonly="true" />
请注意,我使隐藏字段可见,以使示例中的行为更加清楚。
答案 1 :(得分:1)
到目前为止,您正在覆盖hidden
输入的内容。您需要创建fullname
字符串,然后更新hidden
输入。
jQuery(document).ready(function($) {
$('input[name="firstname"], input[name="lastname"]').keyup(function() {
var fn = $('input[name="firstname"]'),
ln = $('input[name="lastname"]');
var name = fn.val() + ' ' + ln.val();
$('input[name="fullname"]').val(name)
console.clear()
console.log(name)
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="firstname" value="">
<input type="text" name="lastname" value="">
<input type="hidden" name="fullname" value="">
答案 2 :(得分:1)
lasttname
。
jQuery(document).ready(function($) {
var $fn = $('input[name="fullname"]');
var $firstName = $('input[name="firstname"]');
var $lastName = $('input[name="lastname"]');
$firstName.keyup(function() {
$fn.val($(this).val() + " " + $lastName.val());
});
$lastName.keyup(function() {
$fn.val($firstName.val() + " " + $(this).val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="firstname" value="">
<input type="text" name="lastname" value="">
<input type="text" name="fullname" value="">
答案 3 :(得分:0)
存储名字是一些变量
jQuery(document).ready(function($){
$('input[name="firstname"]').keyup(function() {
$('input[name="fullname"]').val($(this).val());
});
$('input[name="lastname"]').keyup(function() {
var oldname = $('input[name="fullname"]').val(); //take firstname from hidden field
$('input[name="fullname"]').val(oldname + ' '+$(this).val()); // appending the values
});
});
答案 4 :(得分:0)
尝试类似这样的方法。您不需要2个document.ready和2个不同的偶数处理程序来进行键控
<input type="text" name="firstname" data-name value="">
<input type="text" name="lasttname" data-name value="">
<input type="hidden" name="fullname" value="">
jQuery(document).ready(function($){
$('[data-name]').keyup(function() {
$('input[name="fullname"]').val($('input[name="lastname"]').val() + " " +
$('input[name="firstname"]').val());
});
});
答案 5 :(得分:0)
您需要使代码如下所示:
<input type="text" name="firstname" value="">
<input type="text" name="lasttname" value="">
<input type="hidden" name="fullname" value="">
jQuery(document).ready(function($){
$('input[name="firstname"]').keyup(function() {
if($('input[name="lastname"]').val() != '')
{
var last_name = $('input[name="lastname"]').val();
$('input[name="fullname"]').val($(this).val()+' '+last_name);
}
else{
$('input[name="fullname"]').val($(this).val());
}
});
});
jQuery(document).ready(function($){
$('input[name="lastname"]').keyup(function() {
if($('input[name="firstname"]').val() != '')
{
var first_name = $('input[name="firstname"]').val();
$('input[name="fullname"]').val($(this).val()+' '+first_name);
}
else{
$('input[name="fullname"]').val($(this).val());
}
});
});
答案 6 :(得分:0)
很简单
jQuery(document).ready(function($){
$('input[name="firstname"], input[name="lastname"]').keyup(function() {
$('input[name="fullname"]').val($('input[name="firstname"]').val() + ' ' + $('input[name="lastname"]').val());
});
});
答案 7 :(得分:0)
它每次只显示一个值,因为您每次都覆盖全名的先前值。
一种解决方案是为firstName
和lastName
添加特定的ID,在keyup
期间,您可以输入类似的内容
$('input[name="lastname"]').keyup(function() {
var value = $("#firstNameID").val() + $("#lastNameID").val();
$('input[name="fullname"]').val(value);
});
我没有测试它,但这是个主意。
答案 8 :(得分:0)
不要使用两个ready
函数,请使用其中一个,并将两个事件侦听器都放在该函数中。
您的问题是您没有同时用名字和姓氏更新隐藏字段,而是用姓氏覆盖了firstname
。因此,您必须在姓氏后加上姓氏,反之亦然:
看看小提琴波纹管作为一个工作示例。 (我设置了隐藏字段text
只是为了您可以看到输出)
jQuery(document).ready(function($) {
$('input[name="firstname"]').keyup(function() {
$('input[name="fullname"]').val($(this).val() +" " +$('input[name="lasttname"]').val());
});
$('input[name="lasttname"]').keyup(function() {
$('input[name="fullname"]').val($('input[name="firstname"]').val() + " " + $(this).val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="firstname" value="" />
<input type="text" name="lasttname" value="" />
<input type="text" name="fullname" value="" />