简体   繁体   English

通过函数调用JQuery UI datepicker

[英]call JQuery UI datepicker through a function

How to call datepicker using function. 如何使用函数调用datepicker。 when i click on the calendar image the datepicker will show with 2months. 当我单击日历图像时,日期选择器将显示2个月。

<tr><td>date</td><td>
            <input type='text' readonly name="SDATE" id='SDATE' ><img src="calendar.gif" border='0' id='dat_img' onclick="return showCalendar('SDATE')" >
        </td></tr><tr><td>date</td><td>
            <input type='text' readonly name="SDATE1" id='SDATE1' ><img src="calendar.gif" border='0' id='dat_img' onclick="return showCalendar('SDATE1')" >
        </td></tr><tr><td>date</td><td>
            <input type='text' readonly name="SDATE2" id='SDATE3' ><img src="calendar.gif" border='0' id='dat_img' onclick="return showCalendar('SDATE3')" >
        </td></tr>

    <script>
    function showCalendar(inputId){
        //alert(inputId);
        for(i=0;i<=inputId.length;$i++){
            $( "#"+inputId).datepicker({
                numberOfMonths: 2,
                dayNamesMin: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
                changeYear:true,
                changeMonth: true,
                autoSize: true
            });
        }
    }
    </script>

this function is not working. 此功能不起作用。

Use a common class is good instead of different id like, 使用通用类是好的,而不是像其他id一样,

$(function(){
    $('.mydatepicker').datepicker({
        numberOfMonths: 2,
        dayNamesMin: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
        changeYear:true,
        changeMonth: true,
        autoSize: true
    });
});

Then, your HTML should look like, 然后,您的HTML应该看起来像,

<tr>
    <td>date</td>
    <td>
        <input type='text' class="mydatepicker" readonly name="SDATE" id='SDATE' />
        <img src="calendar.gif" border='0' id='dat_img' />
    </td>
</tr>
 <tr>
    <td>date</td>
    <td>
        <input type='text' class="mydatepicker" readonly name="SDATE1" id='SDATE1' />
        <img src="calendar.gif" border='0' id='dat_img' />
    </td>
 </tr>
 <tr>
    <td>date</td>
    <td>
        <input type='text' class="mydatepicker" readonly name="SDATE2" id='SDATE3' />
        <img src="calendar.gif" border='0' id='dat_img' />
    </td>
 </tr>

To Use #date-range you can use class in a tr-row like 要使用#date-range,您可以在tr行中使用class

$(".from-date").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 3,
    onClose: function (selectedDate) {
        $(this).closest('tr').find('.to-date').datepicker("option", "minDate", selectedDate);
    }
});
$(".to-date").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 3,
    onClose: function (selectedDate) {
        $(this).closest('tr').find('.from-date').datepicker("option", "maxDate", selectedDate);
    }
});

Date-range Demo 日期范围演示

Rather tell the controls that they are date pickers when the page loads (on document ready). 而是在页面加载时(准备好文档时)告诉控件它们是日期选择器。 First you will need to select all the controls that you want as date pickers. 首先,您需要选择所有要用作日期选择器的控件。 So we will select all controls who's name starts with 'SDATE': 因此,我们将选择名称以“ SDATE”开头的所有控件:

$(document).ready(function ()
{
    $("input[name^='SDATE']").datepicker({
        numberOfMonths: 2,
        dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        changeYear: true,
        changeMonth: true,
        autoSize: true
    });
});

Alternatively you can try to add.show() at the end: 或者,您可以尝试在末尾添加add.show():

function showCalendar(inputId){
    //alert(inputId);
    for(i=0;i<=inputId.length;$i++){
        $( "#"+inputId).datepicker({
            numberOfMonths: 2,
            dayNamesMin: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
            changeYear:true,
            changeMonth: true,
            autoSize: true
        }).show();/*Note the change here*/
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM