[英]Get two input values in one hidden input jQuery
I want to get two values first and last names in one hidden field with space between. 我希望在一个隐藏字段中获得两个值的名字和姓氏,其间有空格。 I tried with this code
我试过这个代码
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="">
It is not working how i want. 这不是我想要的工作方式。 It's showing only one value each time.
它每次只显示一个值。 Can anyone help me with this how can i get this work?
任何人都可以帮助我,我怎么能得到这项工作?
Thanks in advance. 提前致谢。
The issue is because you're overwriting the value of the hidden field on every key entry. 问题是因为您在每个键条目上覆盖隐藏字段的值。 To fix this you can use a single event handler on both inputs which concatenates the first and lastnames together.
要解决此问题,您可以在两个输入上使用单个事件处理程序,将第一个和最后一个名称连接在一起。 Try this:
试试这个:
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" />
Note that I made the hidden field visible to make the behaviour clearer in the example. 请注意,我使隐藏字段可见,以使示例中的行为更清晰。
As of now you are overwriting the content of hidden
input. 截至目前,您正在覆盖
hidden
输入的内容。 You need to create the fullname
string and then update the hidden
input. 您需要创建
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="">
lasttname
. 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="">
Store the first name is some variable 存储名字是一些变量
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
});
});
Try something like this. 尝试这样的事情。 You don't need 2 document.ready and 2 different even handler for keyup
对于keyup,你不需要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());
});
});
You need to make your code like given below: 您需要制作如下所示的代码:
<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());
}
});
});
Simple it is 很简单
jQuery(document).ready(function($){
$('input[name="firstname"], input[name="lastname"]').keyup(function() {
$('input[name="fullname"]').val($('input[name="firstname"]').val() + ' ' + $('input[name="lastname"]').val());
});
});
It shows only the one value each time because you overwrite the previous value of fullname every time . 它每次只显示一个值,因为您每次都会覆盖以前的全名值。
One solution is to add specific id's for firstName
and lastName
and during keyup
you can have something like 一种解决方案是为
firstName
和lastName
添加特定的id,在keyup
你可以有类似的东西
$('input[name="lastname"]').keyup(function() {
var value = $("#firstNameID").val() + $("#lastNameID").val();
$('input[name="fullname"]').val(value);
});
i didnt test it but this is the idea. 我没有测试它,但这是个主意。
Don't use two ready
functions, use one, and put both event listeners inside that one. 不要使用两个
ready
函数,使用一个,并将两个事件监听器放在那个函数中。 Your problem is that your not updating the hidden field with both the first name and last name, you're instead overwriting the firstname
with the last name. 你的问题是,你不能同时与姓氏和名字,你是不是覆盖更新的隐藏字段
firstname
与姓氏。 Thus you must append the last name to the first name and vice versa: 因此,您必须将姓氏附加到名字,反之亦然:
Take a look at the fiddle bellow for a working example. 看一下小提琴波纹管的工作实例。 (I have made the hidden field
text
just so you can see the output) (我已经制作了隐藏的字段
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="" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.