1

datepicker の初期化時に getDefault_Date() 関数が呼び出されない エラーの場所を説明してください

    $('.dtpExpiryDate').datepicker({
        numberOfMonths: 1,
        showButtonPanel: false,
        dateFormat: 'dd/mm/yy',
        showOn: 'both',
        buttonImage: "images/calender.jpg",
        buttonImageOnly: true,
        changeMonth: true,
        changeYear: true,            
        minDate: 0,
        maxDate: '+20Y',
        defaultDate: getDefault_Date()
    });


    function getDefault_Date() {
        var issueDate = $.trim($('.dtpIssueDate').val());
        console.log(issueDate);
        if (issueDate != '') {
            var dateArray = issueDate.split("/");
            dateArray[2] += 10;
            var defaultDate = "'" + dateArray[0] + "/" + dateArray[1] + "/" + dateArray[2] + "'";
            return defaultDate;
        } else {
            return 0;
        }
    }
4

4 に答える 4

2

なしで日付ピッカーを初期化しますdefaultDate

初期化後、計算を行い、 を設定しますdeafultDate

var ddate="";
var issueDate = $.trim($('.dtpIssueDate').val());
if (issueDate != '') {
    var dateArray = issueDate.split("/");
    dateArray[2] += 10;
    var ddate= "'" + dateArray[0] + "/" + dateArray[1] + "/" + dateArray[2] + "'";

} 
$('.dtpExpiryDate').datepicker( "option", "defaultDate", ddate );

注:正しいdateFormat、つまりdd / mm / yy ...であることを確認してくださいddate.datpickerを初期化したときに指定したdateFormat..

defaultDatedateFormat オプションで定義された形式の文字列、または相対日付をサポートします。

日付ピッカーの API ドキュメントに目を通す

http://api.jqueryui.com/datepicker/#option-dateFormat

于 2012-12-11T07:44:59.660 に答える
0

関数は、jquery ブラケットの外側にある必要があります。

$(document).ready(function(){

$('.dtpExpiryDate').datepicker({
    numberOfMonths: 1,
    showButtonPanel: false,
    dateFormat: 'dd/mm/yy',
    showOn: 'both',
    buttonImage: "images/calender.jpg",
    buttonImageOnly: true,
    changeMonth: true,
    changeYear: true,            
    minDate: 0,
    maxDate: '+20Y',
    defaultDate: getDefault_Date()
});

});

function getDefault_Date() {
    var issueDate = $.trim($('.dtpIssueDate').val());
    console.log(issueDate);
    if (issueDate != '') {
        var dateArray = issueDate.split("/");
        dateArray[2] += 10;
        var defaultDate = "'" + dateArray[0] + "/" + dateArray[1] + "/" + dateArray[2] + "'";
        return defaultDate;
    } else {
        return 0;
    }
}

また、機能しない場合は、次のように、関数の内容をdefaultDateの前に配置できます。

defaultDate: function(){
             var issueDate = $.trim($('.dtpIssueDate').val());
    console.log(issueDate);
    if (issueDate != '') {
        var dateArray = issueDate.split("/");
        dateArray[2] += 10;
        var defaultDate = "'" + dateArray[0] + "/" + dateArray[1] + "/" + dateArray[2] + "'";
        return defaultDate;
    } else {
        return 0;
    }
}
于 2012-12-11T07:31:51.377 に答える
0

このステートメントの代わりに

 var defaultDate = "'" + dateArray[0] + "/" + dateArray[1] + "/" + dateArray[2] + "'";

これを行う

var defaultDate = new Date(dateArray[0], dateArray[1], dateArray[2]);

defaultDate が予想される日付でない場合は、日付、月、年ごとにそれらの dateArray 項目を交換するようにしてください。

于 2012-12-11T07:35:19.973 に答える
0

datepicker がその時点で発行された日付を初期化するときに関数を呼び出していることがわかったので、issudate datepicker の onclose イベントに関数呼び出しを配置し​​ました。

jQuery ドキュメントのスクリプト

$(function() {
        $( "#from" ).datepicker({
            defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 3,
            onClose: function( selectedDate ) {
                $( "#to" ).datepicker( "option", "minDate", selectedDate );
            }
        });
        $( "#to" ).datepicker({
            defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 3,
            onClose: function( selectedDate ) {
                $( "#from" ).datepicker( "option", "maxDate", selectedDate );
            }
        });
    });
于 2012-12-11T08:29:44.223 に答える