调用函数值

calling a functions value

本文关键字:函数 调用      更新时间:2023-09-26

可能重复:
功能触发早期

我已经编写了这段代码,但为什么它会提醒我它是未定义的,即使我在调用函数test()时从未有机会点击并从UI日期选择器中选择日期?

对我来说好像没什么意义?

var sdate
function test() {
    alert(select_date())
}
function select_date() {
    $('#dd').dialog({
        autoOpen: true,
        modal: true,
        overlay: {
            opacity: 0.5,
            background: 'black'
        },
        title: "title",
        height: 265,
        width: 235,
        draggable: false,
        resizable: false
    }); //end of dialog
    $('#d1').datepicker({
        onSelect: function() {
            sdate = $(this).val();
            $("#dd").dialog("close");
        }
    });
    return sdate
}​

onSelect是一个事件回调,您试图在它知道要做什么之前返回一个值。不可能让test()返回该值,因为它来得晚。

您应该在事件回调中执行警报或任何逻辑:

$('#d1').datepicker({
    onSelect: function() {
        sdate = $(this).val();
        $("#dd").dialog("close");
        alert(sdate);
        // or your own function
        someOtherTest(sdate);
    }
});

-

function someOtherTest(date) {
    alert(date);
}