复制值并减少代码

时间:2015-01-07 10:04:32

标签: jquery copy

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

$('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());

如何减少此代码?想要动态添加字段,手动输入就不合适了。

2 个答案:

答案 0 :(得分:1)

您可以尝试以下代码 -

使用jQuery start with selector来迭代名称以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);
});

答案 1 :(得分:0)

要干它,你可以将它放入一个函数,将输入的识别名称作为参数传递,如下所示:

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']);