2012-08-27 39 views
0

我似乎有这个工作,除了事实上,一旦链接被点击,日期选择器打开,然后我选择一个日期,一切都很好,然后一次我尝试再次单击链接,日期选择器不会再次打开。Jquery UI Datepicker在链接被点击时不会再显示

我在做什么错?

<html> 

<head> 

<!-- LOAD JQUERY LIBRARY: --> 
    <link href="jq/jquery-ui.css"   type="text/css" rel="stylesheet" /> 
    <script src="jq/jquery.min.js"   type="text/javascript"> </script> 
    <script src="jq/jquery-ui.min.js"  type="text/javascript"> </script> 

<script type="text/javascript"> 

function test() { 

var datePickerValue = null; 

$("#d1").datepicker().datepicker("show").change(function() 
{ 
    $('#d1').datepicker({onSelect: datePickerValue = $(this).val() }).hide(); 

    alert("You picked: " + datePickerValue); 
}); 



} 


</script> 



</head> 

<body> 

<div id="d1"></div> 
<a href="javascript:test()">test</a> 

</body> 

</html> 

回答

1

的日期选择器()像下面前只需添加显示方法:

$("#d1").show().unbind().datepicker().datepicker("show").change(function() { 
    $('#d1').datepicker({onSelect: datePickerValue = $(this).val() }).hide(); 
    alert("You picked: " + datePickerValue); 
}); 

这将解决您的问题。

+0

非常感谢Kundan。这很好,我注意到,尽管一旦选择了一个日期,警告框就会弹出多出2或3次。什么会导致这种情况,并且可以采取什么措施来修复这种行为,使得警报框仅弹出一次? –

+0

使用[event.preventDefault()](http://api.jquery.com/event.preventDefault/)。 –

+0

哪部分代码可以插入? –

0
function test() { 
    $('#d1').datepicker({onSelect: function(){alert("You picked: " + $(this).val())})}); 
} 
0

很抱歉,如果我完全关闭这里的标记,但如果你使用你可能会获得更大的成功,jQuery的。对 - http://api.jquery.com/on/

所以加一个id或class来你的链接:

<a class="clicky" href="#">test</a> 

然后调用你的函数是这样的:

$("body").on("click", ".clicky", test); 

我认为这将解决你的问题,但我可能是错的