这个jquery对话框焦点函数出了什么问题?

时间:2012-07-03 18:30:21

标签: jquery dialog focus

如果有人可以帮助我,我会永远感激。

基本上,聚焦功能应该使得如果用户按下对话框中的3个字段中的最后一个,则它将作为选项卡。如果他们在最后一个字段中输入,则提交表单。后一种功能有效,但标签不起作用。

任何人都知道为什么?我没有发布整个代码块,但这应该提供足够的数据。我使用event.target错了吗?

$('#dialog-add-items').dialog({
        autoOpen: false,
        resizable: false,
        width:500,
        position:['center',80],
        modal: true,
        focus: function() {
            $(':input:last', this).unbind('keyup').keyup(function(event) {
                if (event.keyCode == 13) {
                    $('.ui-dialog-buttonpane button:first').click();
                }
            });
            $(':input:not(:last)', this).unbind('keyup').keyup(function(event){
                if(event.keyCode == 13){
                    name=event.target;
                    $(name).next('input').focus();
                }
            });
        },...

2 个答案:

答案 0 :(得分:0)

如果我不得不猜我会说$('.ui-dialog-buttonpane button:first').click();是罪魁祸首。尝试给你的按钮一个ID和参考:

$('#dialog-add-items').dialog({
        autoOpen: false,
        resizable: false,
        width:500,
        position:['center',80],
        modal: true,
        focus: function() {
            $(':input:last', this).unbind('keyup').keyup(function(event) {
                if (event.keyCode == 13) {
                    $('#okbutton').click();
                }
            });
            $(':input:not(:last)', this).unbind('keyup').keyup(function(event){
                if(event.keyCode == 13){
                    name=event.target;
                    $(name).next('input').focus();
                }
            });
        },
        buttons: [{text: 'Ok', id:'okbutton'}],...

答案 1 :(得分:0)

我最后添加了一个if / else语句来测试两个字段中的哪个被聚焦,然后跳转到下一个字段。既麻烦又丑陋,但这是我唯一可以上班的事情。