2017-05-27 59 views
0

我有一个窗体,如果用户按下ESC,它将被关闭。任何时候一个字段被改变,我运行代码来保存基于onchange事件的值。所以通常所有的字段在ESC键被击中之前已经被提交。确定输入字段是否处于编辑模式

但是,如果用户在字段中单击并更改值但未选中或未命中,则输入onchange不会触发。那么这个改变不会被提交。

而当字段处于编辑状态时,按ESC键时下面的代码不会运行。

有一种方法可以在字段仍处于编辑模式时更改ESC键的功能吗?

$(document).keyup(function (e) { 
    if (e.keyCode == 27) { 
     // this assumes all of the fields have been committed. 
     $('#dialog-form').dialog('destroy').html(''); 
    } 
} 
+0

您的代码在最后缺少右括号。 – ElectroBit

回答

0

如果要在编辑表单时更改ESC的行为,请考虑如果您聆听文档,则可以从任何位置检测按键。如果您仅聆听表单,则只会检测该表单中的按键。

<form id="foo"> 
<input type="text" /> 
</form> 

<script> 

$("#foo").keyup(function (e) { 
    if (e.keyCode == 27) { 
     // This code will run if you press escape while editing the form. 
    } 
}) 

$(document).keyup(function (e) { 
    if (e.keyCode == 27) { 
     // This code will run if you press escape from anywhere. 
    } 
}) 

</script> 

对于你的其他问题,我不认为元素有一个.dialog()方法。

相关问题