У меня есть this checkout page (вам нужно будет добавить элемент), который использует JavaScript/jQuery в this jsFiddle, чтобы отобразить/скрыть некоторые поля для отдельного адреса доставки. Когда вы показываете, я устанавливаю значение всех полей в ''
, а при скрытии устанавливаю значения полей в соответствии с их полями в биллинговой форме..val stop form from working
Когда вы отправляете форму, вы должны быть отправлены на экран входа в PayPal (попробуйте заполнить форму без переключения другого почтового адреса и отправки), но если вы перейдете на адрес доставки, он просто вернется на ту же страницу.
Я достаточно отлаживаю, чтобы знать, что он изменяет поля .val()
, нарушающие форму. Если я прокомментирую эти биты и вручную переключу видимость с помощью инструментов dev, или если я заполню форму фактуры и никогда не показываю/скрываю доставку (так .val()
никогда не вызывается), все работает нормально.
Если вы собираетесь посмотреть эту страницу и попробовать, вы знаете ее успешное, если вы попадете на экран PayPal, иначе он просто вернется на ту же страницу (действие формы на той же странице , но я не могу найти ничего, что обрабатывает данные - полная страница PHP можно найти here - это модифицированная версия WPEC's shopping cart page
Здесь есть (большинство) соответствующего JavaScript:
$('#reveal-shipping').click(function(){
if ($('.wpsc_checkout_table.table-2').is(':animated')) return;
if($('.wpsc_checkout_table.table-2').css('display') == 'none'){
$('.wpsc_checkout_table.table-2').slideToggle();
$('.wpsc_checkout_table.table-2').find('input, select, textarea').val('');
document.getElementById('reveal-shipping').innerHTML = 'Ship to my billing address ←';
} else {
for (i=0; i < fields.length; i++){
thisval = $(fields[i][0]).val();
$(fields[i][1]).val(thisval);
}
$('.wpsc_checkout_table.table-2').slideToggle();
document.getElementById('reveal-shipping').innerHTML = 'Ship to a different address →';
}
});
Вы можете найти остальное на the jsFiddle и на the page itself
Большое спасибо за любую помощь, я действительно застрял на этом!
Просто чтобы быть ясно: проблема заключается в том, что поля адрес доставки не отправляются, когда пользователь не выбрать другой адрес доставки? – jah
Нет. Когда вы отправляете форму, вы должны перенаправить ее на экран входа в PayPal. Если вы переключите другой адрес доставки, а затем отправьте форму, она просто вернется на ту же страницу. – Bill