2013-01-04 9 views
11

Şu anda içerik olarak iki girişli bir iletişim kutusu (.datepicker() kullanarak iki girişle) var. İletişim kutusunu açtığımda, ilk giriş odağı olur ve ilk tarih seçici otomatik olarak görüntülenir. Bölmeyi gizlemeyi ve girdiyi bulanıklaştırmayı denedim, ancak bu tarihçinin artık odakta görünmemesine neden oluyor.jQueryUI İletişim Kutusu/Datepicker Otomatik Açılır

İdeal olarak, aşağıdaki edebilmek istiyorum:

  • Aç (hayır datepickers gösteren) iletişim kutusu.
  • İlk girişe tıklayın ve datepicker show'una sahip olun. İşte

benim geçerli kod:

JAVASCRIPT

:

$("#to").datepicker({ 
     onClose: function (selectedDate) { 
     $("#from").datepicker("option", "minDate", selectedDate); 
     } 
    }); 

    $("#from").datepicker({ 
    onClose: function (selectedDate) {        
     $("#to").datepicker("option", "maxDate", selectedDate); 
    } 
}); 


$("#settingsDialog").dialog({ 
    autoOpen: false, 
    open: function (event, ui) { 
        if ($(".ui-datepicker").is(":visible")) 
         $(".ui-datepicker").hide(); 

        $("#to").blur(); 
        $this.focus().click(); 
       }, 
    close: function() { 
     $(this).dialog("close"); 
    } 
}); 

Ben de bir jsfiddle demo yaptık: http://jsfiddle.net/ARnee/19/

Ben çözüm için çevrimiçi aramış ve benzeri bulundu questions ama hiçbiri yardım etmiyor. Bana yardım eden var mı?

DÜZENLEME:

kullanıyorum tarayıcı Chrome.

cevap

7

yüzden görülmez hiçbir yüksekliğe sahip iletişim kutusunda bir kukla girişi sopa Can.

<input style="height:0px; border:none"/> 

DEMO datepicker alanları önce yerleştirin: http://jsfiddle.net/ARnee/20/

+0

Yardımlarınız için teşekkür ederiz! Bu, buna yaklaşmanın dahice bir yoluydu! – Dom

+0

Teşekkürler. Aynı zamanda 'arka plan: şeffaf' olarak ayarlayın, çünkü formun farklı Renkleri vardır. –

1

Çok gibi iletişim kutusunun açık üzerine datepickers oluşturabilirsiniz:

$("#settingsDialog").dialog({ 
    autoOpen: false, 
    open: function (event, ui) { 
        //if ($(".ui-datepicker").is(":visible")) 
        // $(".ui-datepicker").hide(); 

        $("#to").blur(); 
       }, 
    close: function() { 
     $("#to").datepicker("destroy"); 
     $("#from").datepicker("destroy"); 
     $(this).dialog("close"); 
    } 
}); 



$("#b1").click(function(){ 
     $("#settingsDialog").dialog("open"); 
     $("#to").datepicker({ 
     onClose: function (selectedDate) { 
      $("#from").datepicker("option", "minDate", selectedDate); 
     } 
     }); 

     $("#from").datepicker({ 
     onClose: function (selectedDate) { 
      $("#to").datepicker("option", "maxDate", selectedDate); 
     } 
     }); 
}); 

+0

da yine – charlietfl

+0

@charlietfl kullanıldığı durumda iletişim yakın üzerinde 'destroy' kullanmalıdır - Oops, sen sağ. Düzenlenen. – mccannf

+0

Bu yaptı! Teşekkür ederim! – Dom

0
$(document).ready(function(){ 



$("#settingsDialog").dialog({ 
    autoOpen: false, 
    open: function (event, ui) { 
     $("#to").datepicker({ 
     onClose: function (selectedDate) { 
      $("#from").datepicker("option", "minDate", selectedDate); 
     } 
    }); 

    $("#from").datepicker({ 
     onClose: function (selectedDate) {       $("#to").datepicker("option", "maxDate", selectedDate); 
    } 
}); 
        if ($(".ui-datepicker").is(":visible")) 
         $(".ui-datepicker").hide(); 

        $("#to").blur(); 
        $this.focus().click(); 
       }, 
    close: function() { 
     $("#to").datepicker("destroy"); 
     $("#from").datepicker("destroy"); 
     $(this).dialog("close"); 
    } 
}); 



    $("#b1").click(function(){ 
     $("#settingsDialog").dialog("open"); 
    }); 

}); 
​ 
+0

Ne yazık ki, bu sadece ilk iletişim kutusu açık çalışır. Eğer kapatır ve tekrar açarsanız, sorun hala devam eder. – Dom

+0

mccannf dediği gibi kullanacağım doğru tarihçiyi yok etmek için kullanacağı – Madi

13

-1 datepicker içeren girdilere tabindex niteliğini belirlemeyi deneyin.

<input type="text" id="to" tabindex="-1" /> 

DÜZENLEME:

<input id="to" type="text" tabindex="-1" /> 
<input id="from" type="text" tabindex="-1" /> 

DEMO: http://jsfiddle.net/ARnee/32/

+1

+1 - bunun çalışması için bunu her iki girişe de uygulamanız gerekir. ne olursa olsun, çok güzel bul! – Dom