• 14-04-2013, 23:25:16
    #1
    Checkbox ile seçim işlemi yaptırıyorum ancak burayı çözemedim.
    checkbox'lardan name'i hepsi olan seçili elemanı bulup, seçilmişmi seçilmemişmi kontrol edip ona göre işlem yaptıracağım. Ancakhep seçilmedi olarak geliyor. Seçsemde seçilmedi kısmı yani else tarafı çalışıyor.

    .is, .prop, .attr ile denedim hepsinde böyle oldu.

    <input type="checkbox" name="hepsi" value="Hepsi" />
    <input type="checkbox" name="tip_1" value="1" />
    <input type="checkbox" name="tip_2" value="2" />
    <input type="checkbox" name="tip_3" value="3" />
    $('input[type=checkbox][name=hepsi]:checked').each(function(){
    	if($(this).attr('checked') == "checked"){
    		alert('seçildi');
    	}else{
    		alert('seçilmedi');
    	}
    });
    Nerede hata yapıyor olabilirim ?
  • 12-05-2013, 11:59:26
    #2
    id ile secmeniz daha iyi hem type hem name olarak kontrol yaptiginizdan kaynaklaniyor.

    alt'daki oldugu sekilde calisacaktir, sonucu görmek icin chrome'dan sag klik -> ögeyi denetle -> konsol bölümünden görebilirsiniz.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    	<title></title>
    	<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    	<script type="text/javascript">
    	$(function(){
    	
    		$('#hepsi').each(function(){ 
    			if($(this).attr('checked') == "checked"){ 
    				console.log("secildi");
    			}else{ 
    				console.log("secilmedi");
    			} 
    		});  
    	
    	});
    	</script>
    </head>
    <body>
    <input type="checkbox" name="hepsi" id="hepsi" value="Hepsi" checked="checked" />
    <input type="checkbox" name="tip_1" value="1" />
    <input type="checkbox" name="tip_2" value="2" />
    <input type="checkbox" name="tip_3" value="3" />
    </body>
    </html>
  • 12-05-2013, 15:58:41
    #3
    Yukarıdaki kodlarda mantık hatası var. Hepsi isimli input bir adet olmasına rağmen each fonksiyonuyla döngüyle sokmaya çalışıyorsunuz. Aşağıdaki kod işinizi görecektir.

    Demo : http://jsfiddle.net/V9X3n/

    jQuery Library
    //ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
    jQuery:
    $(function () {
    	$("#hepsi").click(function () {
    		$("input[name^=tip_]").prop("checked", $(this).prop("checked"));
    	});
    });
    HTML
    <input type="checkbox" name="hepsi" id="hepsi" /> Tümünü Seç
    <br /><br />
    <input type="checkbox" name="tip_1" value="1" />
    <br />
    <input type="checkbox" name="tip_2" value="2" />
    <br />
    <input type="checkbox" name="tip_3" value="3" />
  • 12-05-2013, 16:46:37
    #4
    bildiğim kadarıyla "attr" seçili etiketin parametre değerini verir, kodunuzda checkbox içinde "checked" parametresi olmadığı için size geriye boş değer dönderir o yüzden checkbox un seçili olup olmadığını aşağıda gibi "is" fonksiyonu ile kontrol ederek işlem yapabilirsiniz.

    if($(this).is(':checked')){
     seçili
    } else {
     seçili değil
    }