как После того как 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 кодеры прошу помочь! |
событие change. Либо по click просто инвертировать checked
|
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();
....
правда весело? |
<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, время: 09:32. |