2012-08-30 39 views
1

我试图从函数中回调一个值,但是回调总是未定义的,因为jQuery Date Picker从来没有机会设置var sdate,因此提醒我它未定义。我真的需要你的帮助,似乎无法通过这个问题。函数早期触发

var sdate 
function test() { 


    select_date() 
    alert(sdate) 

    } 


    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 

    var x 
    $('#d1').datepicker({ 
     onSelect: function() { 
      sdate = $(this).val(); 
      $("#dd").dialog("close"); 
     } 
    }); 
    return sdate 

} 
+0

''sdate''实际上是'你在'alert(sdate)''时未定义''。 –

回答

0

这对你有什么影响?

$('#d1').datepicker({ 
     onSelect: function() { 
      sdate = $(this).val(); 
      //set value to the global variable (although not the best approach) 
      $("#dd").dialog("close"); 
     } 
}); 
+0

sdate设置得很好,但是,id喜欢在函数测试中检查sdate的值,如果它的null {做某事}如果它没有{做别的事情} –

+0

@JasonKelly,为什么你把这个标记为答案如果它不是你想要的? – Alexander

+0

@Alexander:我怀疑这是因为他已经根据我在这里想说的话来更新(模糊)问题中的代码。大声笑.. –

0

根本没有设置sdate。我想也许你打算做sdate = select_date();

+0

这也是我的想法。但即使'x'也是'未定义的',因为它只在onSelect事件回调中设置。 –

+0

我修改了错字。真正的问题是在select_date有机会设置sdate变量之前,函数测试中的警告框会提前激活 –

+0

@JasonKelly:无论那个函数返回它从来没有被你的'alert'使用,也从来没有设置 - 例如:There没有地方你'sdate = xValue'。你应该尝试的是'alert(select_date)'。 –