Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как После того как radio checked запустить ajax? (https://javascript.ru/forum/events/35378-kak-posle-togo-kak-radio-checked-zapustit-ajax.html)

Андрей Лебедев 09.02.2013 13:05

как После того как radio checked запустить ajax?
 
Проблема в том что на событии click() не input[type=checkbox] не успевает стать checked и сразу отправляеться ajax. А надо сделать так сначала checked потом, checked.val() вставляеться в ajax и отправляет.

Структура:
<ul class="test">
<li><label><img src="1.jpg"><input type="radio" name="cur" value="1"></label></li>
<li><label><img src="2.jpg"><input type="radio" name="cur" value="2"></label></li>
<li><label><img src="3.jpg"><input type="radio" name="cur" value="3"></label></li>
<li><label><img src="4.jpg"><input type="radio" name="cur" value="4"></label></li>
<li><label><img src="5.jpg"><input type="radio" name="cur" value="5"></label></li>
</ul>

jquery :

$('.test li').click(function() {
var selectedCurrency1 = jQuery('.test li input:checked').val();
var selectedCurrency2 = jQuery('.test li input:checked').val();
jQuery.ajax({
type: "POST",
url: "processor.php",
data:"id1="+selectedCurrency1+"&id2="+selectedCurr ency2+"",
beforeSend: function(html) {
$('.ui-loader').show('fade');
},
success: function(data){
$('.ui-loader').hide('fade');
jQuery('#rechargeStep3').empty();
jQuery('#rechargeStep3').html(data);
}
});
Как я сказал эта функция Иногда(на 3 или 4 клике) не успевает стать "ЧЕКЕД" и выходит Каша:(

Уважаемые Javascript кодеры прошу помочь!

danik.js 09.02.2013 17:17

событие change. Либо по click просто инвертировать checked

danik.js 09.02.2013 17:19

var selectedCurrency1 = jQuery('.test li input:checked').val();
var selectedCurrency2 = jQuery('.test li input:checked').val();

че это значит?
Можно еще дописать
var selectedCurrency3 = jQuery('.test li input:checked').val();
var selectedCurrency4 = jQuery('.test li input:checked').val();
....

правда весело?

Deff 09.02.2013 18:10

<script src="http://code.jquery.com/jquery-latest.js"></script>

<div id=out>Тут результ</div>

<ul class="test">
 <li><label><img src="1.jpg"><input type="radio" name="cur" value="1"></label></li>
 <li><label><img src="2.jpg"><input type="radio" name="cur" value="2"></label></li>
 <li><label><img src="3.jpg"><input type="radio" name="cur" value="3"></label></li>
 <li><label><img src="4.jpg"><input type="radio" name="cur" value="4"></label></li>
 <li><label><img src="5.jpg"><input type="radio" name="cur" value="5"></label></li>
 </ul>



<script>
$('.test input').change(function() {
var selectedCurrency=[];
var  radioList = $('.test li input');
for(i=0;i<5; i++){
   selectedCurrency[i]= radioList.eq(i).parent().children(':checked').val();
   if(!selectedCurrency[i])selectedCurrency[i]='no';
}

$('#out').html('<b>val: </b> '+selectedCurrency.join(', '))

/*
   $.ajax({
     type: "POST",
     url: "processor.php",
     data:"id1="+selectedCurrency1+"&id2="+selectedCurr ency2+"",
     beforeSend: function(html) {
              $('.ui-loader').show('fade');
     },
     success: function(data){ 
              $('.ui-loader').hide('fade');
              $('#rechargeStep3').empty();
              $('#rechargeStep3').html(data);
     } */
});
</script>

Не наю - у меня все переключается


Часовой пояс GMT +3, время: 10:29.