2014-01-19 38 views
1

当我编辑或添加新的职位jQuery jTable,我想当我完成并按下输入jquery点击保存按钮!jQuery jTable编辑并添加弹出窗口保存按钮输入按

我想这样的事情,但它不工作!

$("#jtable-create-form > div > div > input").keyup(function(e) { 
    if(e.keyCode == 13){ 
     $("#AddRecordDialogSaveButton").click(); 
    } 
}); 

的HTML stucture是这样的:

<div id="jtable-create-form"> // poput div 
    <div> //form wraper div 
    <div> //input wraper div 
     <input> 
    </div> 
    </div> 
</div> 

但是,当我尝试只是警告$("#jtable-create-form > div > div > input").val()我得到undefined

任何人都试过这个,或者看到解决方案!?

回答

0
$("#jtable-create-form input").keypress(function(e) { 
    if(e.which == 13) { 
     $("#AddRecordDialogSaveButton").trigger('click'); 
    } 
}); 
+0

我想这一点,它不eather工作,我试过的document.ready $(“ JTable中 - 工具栏 - 项目 - 添加记录”)。点击这个代码(function(){ console.log($(“#jtable-edit-form”)。find(“input”).val()); }); 但我得到的是'undefined'!我认为问题在那里,我junst不知道如何解决它! – Cardiner

+1

解释为什么这会起作用。 –

+0

你能显示完整的HTML代码吗?我无法在HTML中看到#AddRecordDialogSaveButton。 http://jsfiddle.net/phpowl/F3chc/ –

0

我发现下面似乎工作:

$('#tablediv').jtable('load', {}, function(data) { 

    $(document).on('keydown', '#jtable-create-form input', function(ev) { 
     if(ev.which === 13) { 
      $("#AddRecordDialogSaveButton").trigger('click'); 
     } 
    }); 

    $(document).on('keydown', '#jtable-edit-form input', function(ev) { 
     if(ev.which === 13) { 
      $("#EditDialogSaveButton").trigger('click'); 
     } 
    }); 

});//end load form 

(但不父>子表)。

说明:

我指定回调函数(后表负载),这确保了编辑和创建对话接线KEYDOWN处理程序之前存在。

然后,只有当焦点位于适当形式的子项的输入中时,才附加keydown处理函数。

请注意,我附加了两个处理程序,一个用于创建表单,另一个用于编辑表单,并且我专门查找了键盘代码13,即ENTER键。

上面提到的唯一问题似乎是,如果你有父母>子女jtables的输入按键似乎触发一个空的父母和一个孩子,这是完全不能接受的创建/更新...但如果你只有单层jtables,这个代码应该可以工作。

(仅适用于Chrome测试)

相关问题