我有一个表单,如果用户按下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 :(得分: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()
方法。