【问题标题】:Determine if input field is in edit mode确定输入字段是否处于编辑模式
【发布时间】:2017-05-27 16:59:24
【问题描述】:

我有一个表单,如果用户按下 ESC,它就会关闭。每当更改字段时,我都会运行代码以根据 onchange 事件保存值。因此,通常在按下 ESC 键之前所有字段都已提交。

但是,如果用户在字段中单击并更改了值,但没有按 Tab 或按 Enter,则不会触发 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('');
    }
}

【问题讨论】:

  • 您的代码末尾缺少右括号。

标签: javascript input field state


【解决方案1】:

如果您想在编辑表单时更改 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() 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-10
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多