2012-06-25 18 views
8

के साथ jqueryui datepicker मुझे एक बटन और एक छिपी हुई इनपुट मिली।छिपा इनपुट

मैं चाहता हूं कि डेटपिकर उस बटन के नीचे खुलता है जिसे मैं क्लिक करता हूं। और चयनित तिथि छिपी हुई इनपुट में डाली गई है।

मैं एक नया बटन नहीं बनाना चाहता (डेटपिकर विकल्पों का उपयोग करके), और मैं इनपुट नहीं दिखाना चाहता हूं।

<button type="button" class="btn" id="date_button">Select Date...</button> 

<input type="hidden" name="date" id="date_field" /> 

<script> 
    $('#date_button').datepicker({ 
     showOn: "button", 
     onSelect: function(dateText) { 
      $('#date_field').val(dateText); 
      $('#date_button').text(dateText); 
     } 
    }) 
</script> 

कोई विचार?

+0

क्या मैं आपकी कोड अनुरोध देख सकता हूं ase? –

उत्तर

1

यह एक छोटे से hacky है, लेकिन यह ठीक से काम करने लगता है:

  1. बटन के बजाय input को datepicker देते हैं।
  2. जब यह खुलता है तो बटन के नीचे डेटपिकर को स्थानांतरित करें।
var $button = $("#date_button"), 
    left = $button.offset().left, 
    top = $button.offset().top + $button.height(); 

$('#date_field').datepicker({ 
    onSelect: function(dateText) { 
     $('#date_field').val(dateText); 
     $button.text(dateText); 
    }, 
    beforeShow: function (event, ui) { 
     setTimeout(function() { 
      ui.dpDiv.css({ left: left, top: top });  
     }, 5);    
    } 
}); 

$button.on("click", function() { 
    $("#date_field").datepicker("show"); 
}); 

उदाहरण:।।http://jsfiddle.net/StUsH/

+0

यह अब और काम नहीं कर रहा है। –

+1

@ जे। गिललेबर्ट I ने jsfiddle को एक ऐसे संस्करण में अपडेट किया है जो काम करता है। JQuery 1.9.1 और jQueryUI 1.9.2 के साथ jsfiddle में कोई समस्या प्रतीत होती है, डेटपिकर '$ .browser.msie' पर चॉकलेट करता है। – kibibu

+1

एक छिपी हुई इनपुट का उपयोग करने के बजाय, एक टेक्स्ट इनपुट का उपयोग करें और इसे सीएसएस के साथ छुपाएं। एक छिपे इनपुट पर डेटपिकर शुरू करने से स्थिति पर एक त्रुटि होगी। –

12

मैं एक .show() करके ऐसा किया ध्यान केंद्रित() को छिपाने() - पूरी तरह से काम करता है, हालांकि यह थोड़ा अशुद्ध है:

$(document).ready(function() { 
    $('input').datepicker(); 
     $('#mybutton').click(function() { 
     $('input').show().focus().hide(); 
    }); 
}); 

http://jsfiddle.net/JKLBn/

+0

आईई में नए jQuery संस्करणों के साथ काम नहीं करता है। (शायद क्योंकि आईई असीमित रूप से फोकस करता है) –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^