ฉันต้องการรับวันที่จาก datepicker เมื่อใดก็ตามที่ผู้ใช้เลือกวันที่ใน jQuery UI datepicker แล้วคลิกปุ่มบนแบบฟอร์ม
ฉันต้องได้วันเดือนและปีของวันที่พวกเขาเลือก ฉันจะรับรูปแบบวันที่ jQuery UI ได้อย่างไร
ฉันต้องการรับวันที่จาก datepicker เมื่อใดก็ตามที่ผู้ใช้เลือกวันที่ใน jQuery UI datepicker แล้วคลิกปุ่มบนแบบฟอร์ม
ฉันต้องได้วันเดือนและปีของวันที่พวกเขาเลือก ฉันจะรับรูปแบบวันที่ jQuery UI ได้อย่างไร
คำตอบ:
ใช้
var jsDate = $('#your_datepicker_id').datepicker('getDate');
if (jsDate !== null) { // if any date selected in datepicker
jsDate instanceof Date; // -> true
jsDate.getDate();
jsDate.getMonth();
jsDate.getFullYear();
}
คุณสามารถดึงวันที่ได้โดยใช้ฟังก์ชัน getDate:
$("#datepicker").datepicker( 'getDate' );
ค่าจะถูกส่งกลับเป็นวัตถุ JavaScript Date
หากคุณต้องการใช้ค่านี้เมื่อผู้ใช้เลือกวันที่คุณสามารถใช้เหตุการณ์ onSelect:
$("#datepicker").datepicker({
onSelect: function(dateText, inst) {
var dateAsString = dateText; //the first parameter of this function
var dateAsObject = $(this).datepicker( 'getDate' ); //the getDate method
}
});
พารามิเตอร์แรกคือในกรณีนี้คือ Date ที่เลือกเป็น String ใช้ parseDate เพื่อแปลงเป็น JS Date Object
ดูhttp://docs.jquery.com/UI/Datepickerสำหรับข้อมูลอ้างอิง jQuery UI DatePicker ฉบับเต็ม
ลองใช้วิธีนี้ใช้งานได้อย่างมีเสน่ห์ให้วันที่ที่คุณเลือก แบบฟอร์ม onsubmit พยายามรับค่านี้: -
var date = $("#scheduleDate").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();
ลิงก์สำหรับ getdate: https://api.jqueryui.com/datepicker/#method-getDate
$("#datepicker").datepicker( 'getDate' );
บางครั้งปัญหามากมายกับมัน ในค่าแอตทริบิวต์ของข้อมูล datapicker คือ 28-06-2014 แต่ datepicker แสดงวันนี้หรือไม่มีอะไรเลย ฉันตัดสินใจในลักษณะดังกล่าว:
<input type="text" class="form-control datepicker" data-value="<?= date('d-m-Y', (!$event->date ? time() : $event->date)) ?>" value="<?= date('d-m-Y', (!$event->date ? time() : $event->date)) ?>" />
ฉันเพิ่มลงในอินพุตของ data-value แอตทริบิวต์ datapicker เพราะถ้าเรียกjQuery (this) .val () OR jQuery (this) .attr ('value') - ไม่มีอะไรทำงาน ฉันตัดสินใจเริ่มต้นในรอบแต่ละ datapicker และรับค่าจากแอตทริบิวต์ data-value:
$("form .datepicker").each(function() {
var time = jQuery(this).data('value');
time = time.split('-');
$(this).datepicker('setDate', new Date(time[2], time[1], time[0], 0, 0, 0));
});
และมันใช้งานได้ดี =)
คำตอบของ NamingException ใช้ได้ผลสำหรับฉัน ยกเว้นฉันใช้
var date = $("#date").dtpicker({ dateFormat: 'dd,MM,yyyy' }).val()
datepicker
ไม่ได้ผล แต่dtpicker
ทำ