• 29-10-2014, 14:31:41
    #1
    Merhaba aşağıdaki gibi bir forml kotrol kodum var ve başarıyla çalışıyor

    $(document).ready(function(){
    $("#iletisimbt").click(function(){
    if($("#isim").val()==""){ 
    $("#uyari").html("<div class='kirmizikutu'>Lütfen isminizi yazin</div>");
    return false; 
    }
    if($("#email").val()==""){ 
    $("#uyari").html("<div class='kirmizikutu'>Lütfen email adresinizi yazin</div>"); 
    return false; 
    }
    var email = $("#email").val();
             if(MailKontrol(email)) {
                // email geçerli iletimiz.
             } else {
    $("#uyari").html("<div class='kirmizikutu'>Lütfen gecerli bir email yazin</div>");
             return false;
             }
    function MailKontrol(email) {
             var kontrol = new RegExp(/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/i);
             return kontrol.test(email);
          }
    if($(".mesaj").val()==""){ 
    $("#uyari").html("<div class='kirmizikutu'>Mesaj yazmayi unuttunuz sanirim</div>"); 
    return false; 
    }
    $('#loading').html('<div class="mavikutu">Mesaj gönderiliyor.. Lütfen bekleyin.</div>');
    $.ajax({
    type: "post",
    url: "<?php echo $mobilsiteadresi; ?>/islem.php?veri=iletisim",
    data : $("#iletigonder").serialize(),
    success : function(cevap){
    $("#sonuc").html(cevap);
    document.getElementById('#iletigonder').reset();
    }
    });
    });
    });
    div yapısıda aşağıdaki gibi

    <div id="sonuc"><div id="uyari"><div id="loading"></div></div></div>
    input'a veya dive tıklanınca kapanmasını istiyorum
    Bunu yapamayınca bari form gonderildikten sonra çıkan mesaj divi olan #sonuc divini kapatayım dedim ve aşağıdaki kodu jquery kodlarıma ekledim

    $("#sonuc").click(function(){
       $("#sonuc").slideToggle(1000);
    });
    Hal böyle olunca açılan divi tıkladığımda kapanıyor fakat yeni bir mesaj göndermek istedigimde hiç bir div çalışmıyor yani açılmıyor.

    Yardımlarınızı bekliyorum
  • 29-10-2014, 23:45:14
    #2
    @SurucLu; çünkü slidetoggle ile siz divi display:none yapıyorsunuz ama uyayı yazdırma kısmında sadece $("#uyari").html() ile içerisine metin giriyorsunuz display:none kaldığı için ilgili div görünmüyor. metni girdikten sonra birde $("#uyari").slideDown(250) ile ilgili divi görünür hale getirmelisiniz.

    Kod:
    $(document).ready(function(){
    $("#iletisimbt").click(function(){
    if($("#isim").val()==""){ 
    $("#uyari").html("<div class='kirmizikutu'>Lütfen isminizi yazin</div>");
    return false; 
    }
    if($("#email").val()==""){ 
    $("#uyari").html("<div class='kirmizikutu'>Lütfen email adresinizi yazin</div>");
    $("#uyari").slideDown(250);
    return false; 
    }
    var email = $("#email").val();
             if(MailKontrol(email)) {
                // email geçerli iletimiz.
             } else {
    $("#uyari").html("<div class='kirmizikutu'>Lütfen gecerli bir email yazin</div>");
    $("#uyari").slideDown(250);
             return false;
             }
    function MailKontrol(email) {
             var kontrol = new RegExp(/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/i);
             return kontrol.test(email);
          }
    if($(".mesaj").val()==""){ 
    $("#uyari").html("<div class='kirmizikutu'>Mesaj yazmayi unuttunuz sanirim</div>"); 
    $("#uyari").slideDown(250);
    return false; 
    }
    $('#loading').html('<div class="mavikutu">Mesaj gönderiliyor.. Lütfen bekleyin.</div>');
    $.ajax({
    type: "post",
    url: "<?php echo $mobilsiteadresi; ?>/islem.php?veri=iletisim",
    data : $("#iletigonder").serialize(),
    success : function(cevap){
    $("#sonuc").html(cevap);
    $("#sonuc").slideDown(250)
    document.getElementById('#iletigonder').reset();
    }
    });
    });
    });
  • 30-10-2014, 10:26:20
    #3
    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    @SurucLu; çünkü slidetoggle ile siz divi display:none yapıyorsunuz ama uyayı yazdırma kısmında sadece $("#uyari").html() ile içerisine metin giriyorsunuz display:none kaldığı için ilgili div görünmüyor. metni girdikten sonra birde $("#uyari").slideDown(250) ile ilgili divi görünür hale getirmelisiniz.
    Yönlendirmeniz ışığında deneme yanılma ile çözümü buldum çok teşekkür ederim.. (#uyari yazan yerleride #sonuc yaptım)

    $(document).ready(function(){
    $("#iletisimbt").click(function(){
    if($("#isim").val()==""){ 
    $("#sonuc").slideDown(250);
    $("#sonuc").html("<div class='kirmizikutu'>Lütfen isminizi yazin <a class='uyarikapat'>×</a></div>");
    return false; 
    }
    if($("#email").val()==""){ 
    $("#sonuc").slideDown(250);
    $("#sonuc").html("<div class='kirmizikutu'>Lütfen email adresinizi yazin <a class='uyarikapat'>×</a></div>"); 
    return false; 
    }
    var email = $("#email").val();
             if(MailKontrol(email)) {
                // email geçerli iletimiz.
             } else {
    		 $("#sonuc").slideDown(250);
    $("#sonuc").html("<div class='kirmizikutu'>Lütfen gecerli bir email yazin <a class='uyarikapat'>×</a></div>");
             return false;
             }
    function MailKontrol(email) {
             var kontrol = new RegExp(/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/i);
             return kontrol.test(email);
          }
    if($(".mesaj").val()==""){ 
    $("#sonuc").slideDown(250);
    $("#sonuc").html("<div class='kirmizikutu'>Mesaj yazmayi unuttunuz sanirim <a class='uyarikapat'>×</a></div>"); 
    return false; 
    }
    $("#loading").slideDown(250);
    $('#loading').html("<div class='mavikutu'>Mesaj gönderiliyor.. Lütfen bekleyin. <a class='uyarikapat'>×</a></div>");
    $.ajax({
    type: "post",
    url: "<?php echo $mobilsiteadresi; ?>/islem.php?veri=iletisim",
    data : $("#iletigonder").serialize(),
    success : function(cevap){
    $("#sonuc").html(cevap);
    $("#sonuc").slideDown(250);
    document.getElementById('iletigonder').reset(); // form gonderildikten sonra tum inputlarin icini bosaltiyoruz
    }
    });
    });
    $("#sonuc").click(function(){
       $("#sonuc").slideToggle(1000);
    });
    });
  • 30-10-2014, 11:40:22
    #4
    Hoca bu kadar uğraşacağına JqueryValidation kütüphanesini kullansan daha iyi olur.
  • 30-10-2014, 11:42:17
    #5
    BigCoder adlı üyeden alıntı: mesajı görüntüle
    Hoca bu kadar uğraşacağına JqueryValidation kütüphanesini kullansan daha iyi olur.
    Tam sürümde onu kullanıyorum ama mobil sürümünde pek sevmedim küçük ekranlarda işi bozuyor bende böyle bir yol denedim.. şuanda güzel çalışıyor.
    form boyutlarınıda ekrana göre ayarlasam bu derttende kurtulmuyş olacağım

    İlgin için teşekkür ederim.