Для тех кто любит простые сложные задачи
Есть 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, время: 07:29. |