• Страница 1 из 1
  • 1
Модератор форума: JonMagon  
Автоматический КЛИК на 2 элемента radio при загруз.страницы?
bulken
Сообщений: 41
Репутация: 0

Сообщение # 1 | 16:42:10
Цитата
Нужно при загрузке двух элементов radio совершить автоматический клик по обоим элементам: на "Наличными при получении" и на "Способ доставки №1". Просто cheked здесь не подойдет



Для чего это нужно? варианты оплаты и доставки меняются в зависимости от наличия товара. При переходе на следующий товар в кеше останется вариант оплаты или доставки для предыдущего товара. При автоматическом клике только на "pay-type-1" вроде все работает, а при попытке клика последовательно на два элемента уже не срабатывает.

Ниже привел код:
Код
<h2><!--<s4452>-->Способ оплаты<!--</s>--></h2>

<script type="text/javascript">
$(".order-item-other1").each( function () {  
  if ($(this).text() == "есть в наличии") {  
document.write('<table width="100%" border="0" celspacing="0" celpadding="2" id="payments-list" class="methods-list"><tr valign="top"><th> <input type="radio" name="payment" value="1" class="payment-item" id="pay-type-1" onclick="shEvOrd(\'payment\',this)" checked="checked"> </th><td><label class="label" for="pay-type-1">Наличными при получении</label>Наш курьер бесплатно доставит товар до Вашего адреса в течение 1-5 дней</td></tr></table>');  
document.write('<h2><!--<s4454>-->Способ доставки<!--</s>--></h2><table width="100%" border="0" celspacing="0" celpadding="2" id="delivery-list" class="methods-list"><tr valign="top"><th><input type="radio" name="delivery" value="2" class="delivery-item" id="del-type-2" onclick="shEvOrd(\'delivery\',this,1)" checked></th><td><label class="label" for="del-type-2">Способ доставки № 1</label>Наш курьер бесплатно доставит товар до Вашего адреса в течение 1-5 дней</td></tr></table>');
window.onload = function() {
document.getElementById("pay-type-1").onclick();
document.getElementById("del-type-2").onclick();
}
}  
});  
</script>
Прикрепления: 6994277.png (22.5 Kb)
JacksonMihailov
Сообщений: 259
Репутация: 107

Сообщение # 2 | 18:20:52
Код
<h2><!--<s4452>-->Способ оплаты<!--</s>--></h2>  

<script type="text/javascript">  
$(".order-item-other1").each( function () {   
   if ($(this).text() == "есть в наличии") {   
document.write('<table width="100%" border="0" celspacing="0" celpadding="2" id="payments-list" class="methods-list"><tr valign="top"><th> <input type="checkbox" name="payment" value="1" class="payment-item" id="pay-type-1" onclick="shEvOrd(\'payment\',this)" checked="checked"> </th><td><label class="label" for="pay-type-1">Наличными при получении</label>Наш курьер бесплатно доставит товар до Вашего адреса в течение 1-5 дней</td></tr></table>');   
document.write('<h2><!--<s4454>-->Способ доставки<!--</s>--></h2><table width="100%" border="0" celspacing="0" celpadding="2" id="delivery-list" class="methods-list"><tr valign="top"><th><input type="checkbox" name="delivery" value="2" class="delivery-item" id="del-type-2" onclick="shEvOrd(\'delivery\',this,1)" checked></th><td><label class="label" for="del-type-2">Способ доставки № 1</label>Наш курьер бесплатно доставит товар до Вашего адреса в течение 1-5 дней</td></tr></table>');  
}   
});   
</script>

Добавлено (27 Ноя 2013, 18:20:52)
---------------------------------------------
Используйте чекбоксы


jmDB - Текстовая база данных для uCoz
bulken
Сообщений: 41
Репутация: 0

Сообщение # 3 | 18:46:53
Цитата JacksonMihailov ()
Добавлено (27 Ноя 2013, 18:20:52)---------------------------------------------
Используйте чекбоксы
к сожалению способов оплаты на выбор может быть больше 1-го, а выбрать нужно строго один, для этого чекбокс не подойдет(
Drinko
Сообщений: 909
Репутация: 773

Сообщение # 4 | 19:06:24
bulken,
Код
$('#pay-type-1, #del-type-2').attr('checked','checked');

если нужен именно клик:
Код
$('#pay-type-1, #del-type-2').click();

Сообщение отредактировал Drinko - Среда, 27 Ноя 2013, 19:14:45
bulken
Сообщений: 41
Репутация: 0

Сообщение # 5 | 19:49:05
Народ...я точку с запятой убрал между двумя onclickами и все заработало, как так?
Код
window.onload = function() {    
document.getElementById("pay-type-1").onclick()
document.getElementById("del-type-2").onclick()
}
зы: в IE9 все равно не работает или срабатывает через раз, а работает в Chromе

Добавлено (27 Ноя 2013, 19:49:05)
---------------------------------------------

Цитата Drinko ()
$('#pay-type-1, #del-type-2').click();
не получатеся
Сообщение отредактировал bulken - Среда, 27 Ноя 2013, 19:28:15
JacksonMihailov
Сообщений: 259
Репутация: 107

Сообщение # 6 | 20:15:50
bulken, а чем вам не подходит
Цитата Drinko ()
bulken,
$('#pay-type-1, #del-type-2').attr('checked','checked');

jmDB - Текстовая база данных для uCoz
bulken
Сообщений: 41
Репутация: 0

Сообщение # 7 | 21:11:57
Цитата JacksonMihailov ()
bulken, а чем вам не подходитЦитата Drinko ()
bulken,
$('#pay-type-1, #del-type-2').attr('checked','checked');
К сожалению не происходит автоматического выбора нужных radio. Визуально нужные элементы radio отмечаются, но "функционально" выбора не происходит. По умолчанию выбирается вариант оплаты и доставки, которые были нажаты в последний раз, например с предыдущего товара (если варианты оплаты были выбраны):


На рисунке показан предыдущий товар, где вручную выбраны способ оплаты "банковской картой" и способ доставки 2. Так вот... при переходе на текущий товар:


визуально будет показано, что способ оплаты "наличными при получении" и способ доставки 1, но функционально (если не выбрать вручную) будут выбраны способ оплаты "банковской картой" и способ доставки 2.

Добавлено (27 Ноя 2013, 21:02:15)
---------------------------------------------
Единственное, что пока сработало, это


Код
window.onload = function() {
document.getElementById("pay-type-1").onclick()
document.getElementById("del-type-2").onclick()
}


но только на chromе

Добавлено (27 Ноя 2013, 21:11:57)
---------------------------------------------
Да, еще раз повторяюсь, у меня checkbox radio и выполнено в jquery js

Прикрепления: 6229209.png (22.7 Kb) · 5746124.png (22.8 Kb)
Drinko
Сообщений: 909
Репутация: 773

Сообщение # 8 | 00:28:07
Цитата bulken ()
Цитата Drinko ()
$('#pay-type-1, #del-type-2').click();
не получатеся

Что именно? Обработка событий по onClick должна выполняться.

Попробуйте еще:
Код
$('#pay-type-1').attr('checked','checked').click();
$('#del-type-2').attr('checked','checked').click();

Цитата bulken ()
radio и выполнено в jquery js

JQuery по умолчанию подключен на всех страницах wink

bulken
Сообщений: 41
Репутация: 0

Сообщение # 9 | 11:16:27
Цитата Drinko ()
Что именно? Обработка событий по onClick должна выполняться. Попробуйте еще:
$('#pay-type-1').attr('checked','checked').click();
$('#del-type-2').attr('checked','checked').click();

Вроде работает!!) Но только после полной загрузки страницы. Как-то можно кликнуть сразу после того как элемент radio загрузился, а не после полной загрузки страницы. Иначе если секунд 5 не подождешь и нажмешь на "оформить заказ" может window.onload = function() и не сработать. Как крайний вариант - не показывать кнопку до полной загрузки страницы

Прикрепления: 9384077.png (58.2 Kb)
Drinko
Сообщений: 909
Репутация: 773

Сообщение # 10 | 13:02:19
Цитата bulken ()
Но только после полной загрузки страницы.

Ну так правильно - Вы ведь обернули все в:
Код
window.onload = function() {     
  }

wink

Убираем - и будет сразу срабатывать. Другое дело, что нужно смотреть какие функции выполняются по onClick, и прогружать их ДО скрипта выполняющего клик.

bulken
Сообщений: 41
Репутация: 0

Сообщение # 11 | 13:47:05
Цитата Drinko ()
Ну так правильно - Вы ведь обернули все в: window.onload = function() {
}1
2

Все верно, если не оборачивать в onload, то клик не выполняется(
Может я ошибаюсь, но пробовал через window.addEvent('domready', function() и $(document).ready.. не вышло
Drinko
Сообщений: 909
Репутация: 773

Сообщение # 12 | 13:57:41
bulken, у Вас функция, которая должна выполняться по клику расположена ниже скрипта, который этот клик делает - естественно, что она выполняться не будет.

bulken
Сообщений: 41
Репутация: 0

Сообщение # 13 | 15:57:09
Цитата Drinko ()
bulken, у Вас функция, которая должна выполняться по клику расположена ниже скрипта, который этот клик делает - естественно, что она выполняться не будет.
Да, вижу...Там не все так просто, функцию выше не перенесешь...не выполняются нижестоящие скрипты. Весь код уж приводить не буду
Drinko, в любом случае тебе Большое Спасибо, хорошо помог!
На текущий момент реализовал через :
Код
$(document).ready(function() {
$('#pay-type-1').attr('checked','checked').click();  
$('#del-type-2').attr('checked','checked').click();
};);
Вроде работает
  • Страница 1 из 1
  • 1
Поиск:
Telegram
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!