Я думаю, что лучшее решение для этого - запросить адрес для выставления счета, а затем установить простой флажок «Отправлять на адрес для выставления счета» - по умолчанию этот флажок установлен - когда кто-то снимает этот флажок, появляются поля «Доставка» , Серверная сторона все еще должна обрабатывать копирование этой информации из полей billing-> shipping, не все пользователи используют javascript.
Что касается способа копирования jQuery из одного набора полей в другой, вы можете попробовать что-то вроде:
// just so we are only working within the one form we want to work with:
var $form = $('#ourform');
// all fields whos names begin with 'billing':
$('input[name^=billing]', $form).each(function() {
var $field = $(this);
// replace the billing with shipping
var newName = $field.attr('name').replace(/^billing/, 'shipping');
// look for an input named shipping instead of billing,
// and set its value to our value.
$('input[name='+newName+']', $form).val($field.val());
});
Если вы используете символы [и] во входных именах, вам нужно экранировать их с помощью следующей строки кода:
newName = newName.replace(/\[/, '\\[').replace(/\]/, '\\]');