Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не отрабатывает отправку post при снятие галочки (https://javascript.ru/forum/jquery/33151-ne-otrabatyvaet-otpravku-post-pri-snyatie-galochki.html)

maksk 12.11.2012 11:40

Не отрабатывает отправку post при снятие галочки
 
:help:

Всем привет. Т.к. не силен в javascript и jquery, прошу помочь.

Есть код, который должен отправлять значение checkbox по средствам post при установке или снятие галки, но он работает только при установке, причем алерт выводит все нормально в любом случае т.е. true или false.

$(document).ready(function() {

				$('.do-block input[type="checkbox"]').click(function(){
					$(this).closest('tr').toggleClass('done');


                  var lol=$(this).prop('checked');

                 
			      $('#loader').html('<img src="loading.gif" border="0" alt="loader"/>');


			      var dataString = "&ck=" + lol; // формируем строку запроса по типу GET
			      $.ajax({ 
				  type: "POST", 
				  url: "do.php",
				  data: dataString, 
				  cache: false,
				  success: function(html){ setTimeout("$(\"#loader\").html('');",2); }    
			      })

                 alert(lol);



				});
				$('.do-block input[type="checkbox"]:checked').closest('tr').addClass('done');

			});

rockerror 13.11.2012 03:35

Доброй ночи. Воссоздавать ваш код было лениво, поэтому набросал свое прямо в firebug-е. В принципе, думаю у вас не займет много времени видоизменить его.

function myAction()
{
    var status = $(this).prop('checked');
    $('#result_input').attr('value', status);
    alert(status);
}
$(document).ready(function(){
    // эти строки вам не нужны, тут я просто создал нужные элементы на странице
    $("body").empty();
    $("body").html('<input id="bind_input" type="checkbox" />');
    $("body").append('<input id="result_input" type="text" value="" />');
    // вот тут вешаем обработчик события
    $('#bind_input').on('change', myAction);
});


У меня этот код работает и при добавлении и при снятии галочки.
И это, еще. 1. Старайтесь не использовать бессмысленные имена переменных, вроде вашей lol. Бог с ним с примером кода, но увидеть подобное в рабочем коде бывает крайне не приятно. 2. Зачем вам передавать постом строку а-ля гет???? Если уж так хочется отправить все одной строкой - передайте json-объект. С ним и проще и удобнее и не говнокод.


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