Для тех кто любит простые сложные задачи
Есть html код
<fieldset> <input type="radio" name="virtuemart_paymentmethod_id" id="payment_id_3" value="3" checked="checked"> <input type="radio" name="jl_payment_methods" style="display:none" value="ACC" id="jl_payment_methods_All Credit Card (internationally)"/> <input type="radio" name="virtuemart_paymentmethod_id" id="payment_id_6" value="6" > <input type="radio" name="jl_payment_methods" style="display:none" value="VSA" id="jl_payment_methods_VISA Card (internationally)"/> <input type="radio" name="virtuemart_paymentmethod_id" id="payment_id_7" value="7" > <input type="radio" name="jl_payment_methods" style="display:none" value="ewallet" id="jl_payment_methods_Ewallet"/> <input type="radio" name="jl_payment_methods" style="display:none" value="MAE" id="jl_payment_methods_Maestro (UK Spain Autria)"/> </fieldset> Сразу говорю, где он находится, хрен его знает. Выводится с помощью такой конструкции: <?php if ($this->found_payment_method) { echo "<fieldset>"; foreach ($this->paymentplugins_payments as $paymentplugin_payments) { if (is_array($paymentplugin_payments)) { foreach ($paymentplugin_payments as $paymentplugin_payment) { echo $paymentplugin_payment.'<br />'; } } } echo "</fieldset>"; } else { echo "<h1>".$this->payment_not_found_text."</h1>"; } ?> Как видите в html есть radio buttons - три выбора. Под каждым выбором есть дополнительный radio c style="display:none" Нужно чтобы при нажатии активировался соответствующий с style="display:none" Вариант 1. Мне кажется надо сначала удалить style="display:none" и добавить type hidden, остается вопрос, как связать нажатый radio c input hidden. Вариант 2. Чтобы не заморачиваться. Сейчас видно, что у каждого radio свой value, например, value="3" Сделать проверку, какой radio выбран, взять его значение и сравнить. Если значение к примеру равняется ==3, то добавляем ещё одну строку input hidden value="ACC" ACC - это вид платежа. Перед <form> добавил этот код, но он почему-то не работает. <script src="jquery.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $('input[type="radio"]').click(function(e) { var id = $(this).val(); if (id==3) { $('input[type=radio][value=ACC]').attr('checked', 'checked'); } if (id==6) { $('input[type=radio][value=VSA]').attr('checked', 'checked'); } if (id==7) { $('input[type=radio][value=ewallet]').attr('checked', 'checked'); } });}); </script> |
Цитата:
|
<fieldset> <input type="radio" name="virtuemart_paymentmethod_id" id="payment_id_3" value="3" checked="checked"> <input type="radio" name="jl_payment_methods" style="display:none" value="ACC" id="jl_payment_methods_All Credit Card (internationally)"/> <input type="radio" name="virtuemart_paymentmethod_id" id="payment_id_6" value="6" > <input type="radio" name="jl_payment_methods" style="display:none" value="VSA" id="jl_payment_methods_VISA Card (internationally)"/> <input type="radio" name="virtuemart_paymentmethod_id" id="payment_id_7" value="7" > <input type="radio" name="jl_payment_methods" style="display:none" value="ewallet" id="jl_payment_methods_Ewallet"/> <input type="radio" name="jl_payment_methods" style="display:none" value="MAE" id="jl_payment_methods_Maestro (UK Spain Autria)"/> </fieldset> <script src="jquery.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $('input[type="radio"]').click(function(e) { var inPArr=[3,'ACC',6,'VSA',7,'ewallet'] var id = $(this).val(); for(var i=0; i<inPArr.length; i+=2){ if(id==inPArr[i]){//alert(inPArr[i+1]) $("input[value='"+inPArr[i+1]+"']").attr('checked','checked'); break; } } }); }); </script> |
Часовой пояс GMT +3, время: 09:32. |