复制值并减少代码

Copy value and reduce code

我将值从输入复制到具有相同名称的其他输入:

$('input[name="pods_field_post_title"]').val($('#selected input[name="pods_field_post_title"]').val());
$('input[name="pods_field_name"]').val($('#selected input[name="pods_field_name"]').val());
$('input[name="pods_field_street"]').val($('#selected input[name="pods_field_street"]').val());
$('input[name="pods_field_city"]').val($('#selected input[name="pods_field_city"]').val());

如何减少这段代码?想动态添加字段,手动输入不太舒服。

要将其干燥,您可以将其放入将输入的标识名称作为参数传递的函数中,如下所示:

function copyValue(fieldName) {
    $('input[name="' + fieldName + '"]').val($('#selected input[name="' + fieldName + '"]').val());
}

copyValue('pods_field_post_title');
copyValue('pods_field_name');
copyValue('pods_field_street');
copyValue('pods_field_city');

如果在一个实例中要复制很多字段,您也可以更改参数以接受数组:

function copyValues(fieldNames) {
    for (var i = 0; i < fieldNames.length; i++) {
        $('input[name="' + fieldNames[i] + '"]').val($('#selected input[name="' + fieldNames[i] + '"]').val());
    }
}

copyValues(['pods_field_post_title', 'pods_field_name', 'pods_field_street', 'pods_field_city']);

你可以试试下面的代码 -

使用 jQuery 以选择器开头来迭代名称以 pods_field_post

开头的所有输入
$('input[name^="pods_field_post"]').each(function(){
    var inputName = $(this).attr('name');
    var newVal = $('#selected input[name="'+inputName +'"]').val();
    $(this).val(newVal);
});