Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.05.2012, 23:59
Новичок на форуме
Отправить личное сообщение для dmonco Посмотреть профиль Найти все сообщения от dmonco
 
Регистрация: 19.05.2012
Сообщений: 3

Для тех кто любит простые сложные задачи
Есть 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>
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2012, 16:39
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

Цитата:
Перед <form> добавил этот код, но он почему-то не работает.
возможно проблема из за того что вы вставели код перед самими радио батонами, но я не буду утверждать так как не помню как сейчас реализована функция "ready" в jQuery.
Ответить с цитированием
  #3 (permalink)  
Старый 26.05.2012, 10:04
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кто что использует для модульности скриптов? vflash Библиотеки/Тулкиты/Фреймворки 42 18.09.2011 20:06
Кто чем пользуется для генерации событий при модульном тестировании? MVH Events/DOM/Window 0 30.12.2010 17:10
Подходит ли Javascript для решения следующей задачи? alikol Оффтопик 4 24.10.2010 22:40
Подходит ли Javascript для решения следующей задачи? alikol Общие вопросы Javascript 7 24.10.2010 14:10