Javascript 从多个输入字段填充字段?

Javascript 从多个输入字段填充字段?,javascript,jquery,html,Javascript,Jquery,Html,我试图用街道地址、城市、州和邮政编码填充一个字段,但现在当我在每个字段中输入数据时,它会替换最后一个字段 $("#trainer_address").keyup( function () { $('#location').val($(this).val()); }); $("#trainer_city").keyup( function () { $('#location').val($(this).val()); }); $(

我试图用街道地址、城市、州和邮政编码填充一个字段,但现在当我在每个字段中输入数据时,它会替换最后一个字段

$("#trainer_address").keyup( function () {
        $('#location').val($(this).val());
    });

    $("#trainer_city").keyup( function () {
        $('#location').val($(this).val());
    });

    $("#trainer_state").keyup( function () {
        $('#location').val($(this).val());
    });

    $("#trainer_zip").keyup( function () {
        $('#location').val($(this).val());
    });

我如何让它保留上一个值,然后添加下一个值,这样我就可以得到类似于
402 StreetAddress City State,12345

的结果,因为您正在覆盖它。尝试连接:

$('#location').val($('#location').val() + $(this).val());
例如,更改此选项:

$("#trainer_zip").keyup( function () {
    $('#location').val($(this).val());
});
为此:

$("#trainer_zip").keyup( function () {
    $('#location').val($('#location').val() + $(this).val());
});

对每个
keyup()
事件函数执行此操作

使用
+
运算符将旧val与新val连接起来…您可以使用多个选择器避免多个keyup函数

试试这个

$("#trainer_address,#trainer_city,#trainer_state,#trainer_zip").keyup( function () {
  var location=$('#location').val();
  $('#location').val(location + $(this).val());
});

您可以像这样使用本机

$('#location')[0].value += this.value;

此脚本将执行以下操作:

var $loc = $('#location'),
    address = [],

getAddress = function() {
    var str = address.slice(0, 3).join(' ') + ', ' + (address[3] || '');
    return str.replace(/\s+/g, ' ').replace(/,\s$/, '');
}

$("#trainer_address, #trainer_city, #trainer_state, #trainer_zip").on({
    focus: function() {
        $loc.val(getAddress());
    },
    keyup: function() {
        address[$(this).index()] = $(this).val();
        $(this).trigger('focus');
    }
});


脚本还可以正确处理删除部分地址的操作,并自动更新结果。

这很有趣。如果返回到第一个字段,会发生什么?是否应该再追加一次?您希望位置为address+city+state+zip?出于某种原因,键入
street
我最终会对如何实现此解决方案感到困惑。我如何添加此解决方案?您只需替换设置值的行。