у вас сразу при загрузке ругается на
TypeError: document.id(...) is null
document.id('shipto_virtuemart_country_id').value=176;
т.е. #shipto_virtuemart_country_id отсутствует на странице
Переустановил таблицы virtuemart_userfield_values и virtuemart_userfields.
При нажатие на кнопку требует заполнить поля, заполняю.
Потом опять ошибка в скрипте, спотыкается на
ship_to.each(function(item) {
//console.log(item);
if(!item.get('autocomplete')){
var name=item.get('id').replace('shipto_','');
if(bill_to.getElementById(name)) {
item.set('value',bill_to.getElementById(name).get('value'));
}
}
});
Обнаружил что есть скрытые поля типа
<input type="text" autocomplete="off" style="width: 86px;" class="" aria-invalid="false">
if(!item.get('autocomplete')) таким исключением обошел их
Далее ошибки пропадают, но кнопка не реагирует.
В консоли хрома видно что аяксом шлет по адресу
Request URL:
Для просмотра ссылки Войди или Зарегистрируйся
В ответ получаем
<br />
<b>Strict Standards</b>: Declaration of TableUserfields::check() should be compatible with VmTable::check() in <b>/home/bh46660/fmcomfort/administrator/components/com_virtuemart/tables/userfields.php</b> on line <b>31</b><br />
<br />
<b>Strict Standards</b>: Declaration of TableUserfields::checkAndDelete() should be compatible with VmTable::checkAndDelete($table, $whereField = 0, $andWhere = '') in <b>/home/bh46660/fmcomfort/administrator/components/com_virtuemart/tables/userfields.php</b> on line <b>31</b><br />
[]
Решение придумал.
Вывел две кнопки здесь, первую скрою в css.
echo $this->checkout_link_html;
if (!VmConfig::get('use_as_catalog')) {
echo '<a class="vm-button-correct" href="javascript:void(0);" onclick="submit_order();"><span>' . JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU') . '</span></a>';
}
При заполненных полях надо сделать имитацию нажатия на первую кнопку тогда все оформится в один клик.
На jQuery реализовать получилось jQuery('#checkoutFormSubmit').click();
А как это в mootols впихнуть не пойму.
Понимаю что все происходит в этом куске, но мои
console.log('1'); и
console.log('2'); не отрабатывают.
new Request.JSON({
'url':'index.php?type=onepage&opc_task=set_checkout',
'method':'post',
'data':document.id('checkoutForm').toQueryString(),
'async':false,
'noCache':true,
'onSuccess':function(json,text) {
// Fucky IE adds to task 'update' for some unexpected cause
document.checkoutForm.task.value='confirm';
//alert(document.checkoutForm.task.value);
document.checkoutForm.submit();
//jQuery('#checkoutFormSubmit').click();
console.log('1');
},
'error':function(){console.log('2');}
}).send();
Предположу что из-за ошибки
Strict Standards ни чего не возвращается т.к. на пол пути ошибка выходит.