Javascript 在jQueryUI对话框中输入键行为

Javascript 在jQueryUI对话框中输入键行为,javascript,jquery,html,jquery-ui,javascript-framework,Javascript,Jquery,Html,Jquery Ui,Javascript Framework,如何修改下面的代码,使得当按下enter键时,jQuery日期选择器将做出反应,并将变量(datePickerValue)设置为自动高亮显示的日期,即打开jQuery时的当前日期。我希望能够打开datepicker,快速按enter键,它只需要当前日期并将其存储到var中 <html> <head> <!-- LOAD JQUERY LIBRARY: --> <link href="jq/jquery-ui.css"

如何修改下面的代码,使得当按下enter键时,jQuery日期选择器将做出反应,并将变量(datePickerValue)设置为自动高亮显示的日期,即打开jQuery时的当前日期。我希望能够打开datepicker,快速按enter键,它只需要当前日期并将其存储到var中

<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">

window.onload = function() {

                $('#dd').dialog({ 
                                    autoOpen:   true,
                                    modal:      true,
                                    overlay:    { opacity: 0.5, background: 'black'},
                                    title:      'Select the date:',
                                    height:     215, 
                                    width:      234,
                                    draggable:  false, 
                                    resizable:  false

                });//end of dialog_atip


var datePickerValue = ""

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



}//end of window.onload


</script>


</head>

<body>
<div style="display:none" id="dd">
<div id="d1">
</div>
</body>

</html>

window.onload=函数(){
$('#dd')。对话框({
自动打开:对,
莫代尔:是的,
覆盖:{不透明度:0.5,背景:“黑色”},
标题:“选择日期:”,
身高:215,
宽度:234,
可拖动:错误,
可调整大小:false
});//对话框结束
var datePickerValue=“”
$(“#d1”).show().unbind().datepicker().datepicker(“show”).change(函数(){
//$('#d1').datepicker({onSelect:datePickerValue=$(this.val()}).hide();
$('#d1').datepicker({onSelect:datePickerValue=$(this.val()})
警报(“您选择:“+datePickerValue”);
$(“#dd”)。对话框(“关闭”)
});
}//窗口结束。onload

活动元素的类
.ui state处于活动状态
,因此当按下enter键时,您可以模拟单击该元素,如下所示:

$(document).on('keypress', function (e){
    if(e.which == 13)
    {
        $('.ui-state-active').click();
    }
});

这是一个例子。焦点必须放在文档上,文档才能在那里工作(单击输出上的任意位置,然后按enter键)。

活动元素的类
.ui state处于活动状态
,因此当按下enter键时,您可以模拟对该元素的单击,如下所示:

$(document).on('keypress', function (e){
    if(e.which == 13)
    {
        $('.ui-state-active').click();
    }
});

这是一个例子。焦点必须放在文档上,文档才能在那里工作(单击输出上的任意位置,然后按enter键)。

您可以做的是,在#d1上为keycode==13添加一个侦听器,然后在enter上单击present link。您可以做的是,在#d1上为keycode==13添加一个侦听器,然后在enter上单击present link。这非常有效。但是,是否有办法使enter键仅在焦点位于对话框窗口而不是整个html文档上时才起作用?当然,由于对话框是模态的,您可以只检查它是否打开<代码>如果(例如,which==13&&$('#dd').dialog('isOpen')==true)这非常有效。但是,是否有办法使enter键仅在焦点位于对话框窗口而不是整个html文档上时才起作用?当然,由于对话框是模态的,您可以只检查它是否打开<代码>如果(例如which==13&&$('#dd')。对话框('isOpen')==true)