确定输入字段是否处于编辑模式

时间:2017-05-27 16:59:25

标签: javascript input field state

我有一个表单,如果用户按下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('');
    }
}

1 个答案:

答案 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()方法。