• 22-12-2014, 19:24:35
    #1
    Merhaba arkadaşlar aşağıdaki fotoğrafta görüldüğü üzere sayısı belli olmayan Combobox'larım mevcut. Hepsinin içerikleri aynı, herhangi bir comboboxtan bir değer seçildiği zaman diğer combobox'ta aynı değerin seçilmesini nasıl engelleyebiliriz ?


    Örnek: 1. seçim kutusundan Mehmet seçilirse 2. seçim kutusunda Mehmet'in pasif olması gibi.
  • 26-12-2014, 11:59:04
    #2
    Üyeliği durduruldu
    Lingly adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar aşağıdaki fotoğrafta görüldüğü üzere sayısı belli olmayan Combobox'larım mevcut. Hepsinin içerikleri aynı, herhangi bir comboboxtan bir değer seçildiği zaman diğer combobox'ta aynı değerin seçilmesini nasıl engelleyebiliriz ?


    Örnek: 1. seçim kutusundan Mehmet seçilirse 2. seçim kutusunda Mehmet'in pasif olması gibi.

    bu değerler sql den geliyorsa basit hocam.

    değerlere durum diye bir alan eklersiniz tabloda durum 1 olanlar görünür durum 0 olanlar görünmez


    ilk kutuda seçim yapılınca seçilenin ajax ile durumu 0 olarak gönderip sql e kaydedilir, yine kaydeden o ajax ile verileri checkboxa durumu 1 olanları bastırırsınız.
  • 26-12-2014, 16:49:54
    #3


    CssValley adlı üyeden alıntı: mesajı görüntüle
    bu değerler sql den geliyorsa basit hocam.

    değerlere durum diye bir alan eklersiniz tabloda durum 1 olanlar görünür durum 0 olanlar görünmez


    ilk kutuda seçim yapılınca seçilenin ajax ile durumu 0 olarak gönderip sql e kaydedilir, yine kaydeden o ajax ile verileri checkboxa durumu 1 olanları bastırırsınız.
    Öncelikle cevabınız için teşekkür ediyorum. Acaba bunun dinamik olarak bir örneği var mı elinizde ?
  • 26-12-2014, 18:55:56
    #4
    Misafir
    Lingly adlı üyeden alıntı: mesajı görüntüle



    Öncelikle cevabınız için teşekkür ediyorum. Acaba bunun dinamik olarak bir örneği var mı elinizde ?


    <form>
    
      <select name="adi">
    	<option value="mehmet" class="mehmet">Mehmet</option>
    	<option value="kilimci" class="kilimci">Kilimci</option>
    	<option value="ahmet" class="ahmet">Ahmet</option>
     
      </select>  
      <select name="adi">
    	<option value="mehmet" class="mehmet">Mehmet</option>
    	<option value="kilimci" class="kilimci">Kilimci</option>
    	<option value="ahmet" class="ahmet">Ahmet</option>
      </select>  
    
    </form>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript">
    $('select').change(function() {
    
        var value = $(this).val();
    
        $(this).siblings('select').children('option').each(function() {
            if ( $(this).val() === value ) {
                $(this).attr('disabled', true).siblings().removeAttr('disabled');   
            }
        });
    
    });
    
    </script>
    Saygılar.
    • Retreat
    Retreat bunu beğendi.
    1 kişi bunu beğendi.
  • 26-12-2014, 19:51:15
    #5
    ByMsT adlı üyeden alıntı: mesajı görüntüle
    <form>
    
      <select name="adi">
        <option value="mehmet" class="mehmet">Mehmet</option>
        <option value="kilimci" class="kilimci">Kilimci</option>
        <option value="ahmet" class="ahmet">Ahmet</option>
     
      </select>  
      <select name="adi">
        <option value="mehmet" class="mehmet">Mehmet</option>
        <option value="kilimci" class="kilimci">Kilimci</option>
        <option value="ahmet" class="ahmet">Ahmet</option>
      </select>  
    
    </form>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript">
    $('select').change(function() {
    
        var value = $(this).val();
    
        $(this).siblings('select').children('option').each(function() {
            if ( $(this).val() === value ) {
                $(this).attr('disabled', true).siblings().removeAttr('disabled');   
            }
        });
    
    });
    
    </script>
    Saygılar.
    Çok çok teşekkür ediyorum, yardımda bulunan geliştiricileri görmek ne kadar güzel.

    Verdiğiniz kodu denedim, fakat kararlı çalışmadığını fark ettim. Belki siz de test etmek istersiniz;
    http://jsfiddle.net/6buh7q2p/
    Özellikle 2. ve 3. seçim'den sonra sapıtmaya başlıyor

    Benzer bir örneği aşağıdaki adreste de buldum, aynı sorun orda da mevcut
    http://stackoverflow.com/questions/4...n-other-select



    Aşağıdaki kod ile sorunu çözmüş buluyorum, ihtiyacı olan kişilerin de yararlanması için
    $(document).ready(function () {
        $("select").change(function () {
            var $this = $(this);
            var prevVal = $this.data("prev");
            var otherSelects = $("select").not(this);
            otherSelects.find("option[value=" + $(this).val() + "]").attr('disabled', true);
            if (prevVal) {
                otherSelects.find("option[value=" + prevVal + "]").attr('disabled', false);
            }
    
            $this.data("prev", $this.val());
        });
    });
  • 26-12-2014, 20:19:39
    #6
    Misafir
    Benim verdiğim kodu hangi tarayıcıda denemiştiniz acaba ?

    Eğer bütün tarayıcılar önemliyse projeniz için çözüm bulduğunuz kod bütün tarayıcılarda aynı işlevi görmiyecektir.
  • 26-12-2014, 20:50:18
    #7
    Sizin verdiğiniz kodu Firefox ve Chrome üzerinde denedim maalesef ikisinde de çalışmadı
  • 29-12-2014, 01:10:46
    #8
    Biraz uğraştırdı ama mükemmel çalıştığına emin olabilirsin

    (function () {
    var beforeText;
    $("select").on('focus', function () {
    beforeSText=$(this).children("option:selected").te xt();
    }).change(function() {
    var aktifSind = $( "select" ).index( this );
    var aktifSText=$(this).children("option:selected").tex t();
    $("select").each(function(i) {
    if (i>aktifSind)
    $( this ).children("option").each(function() {
    if($( this ).text()==aktifSText)
    $( this ).attr('disabled', true);
    else if($( this ).text()==beforeSText)
    $( this ).attr('disabled', false);
    });
    });
    });

    })();

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 01:10:46 -->-> Daha önceki mesaj 01:06:22 --

    var beforeText; gereksiz silinebilir.
  • 29-12-2014, 14:47:37
    #9
    Üyeliği durduruldu
    Lingly adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar aşağıdaki fotoğrafta görüldüğü üzere sayısı belli olmayan Combobox'larım mevcut. Hepsinin içerikleri aynı, herhangi bir comboboxtan bir değer seçildiği zaman diğer combobox'ta aynı değerin seçilmesini nasıl engelleyebiliriz ?


    Örnek: 1. seçim kutusundan Mehmet seçilirse 2. seçim kutusunda Mehmet'in pasif olması gibi.

    En Kararlı ve 100 % çalışanı buyrun...

    http://codepen.io/CssValley/pen/Q-douwakkslYQ


    /*
    R10 - CssValley
    */
     
    // Edit iptal
      // Seçinizin valuesi 0, eğer seçinizi seçerse tüm optionların disabledini kaldır, tüm optionları seçinize çek ve yeniden seçilir hale getir, en baştaki durum (vazgeçme durumu da dinlebilir..)