我意识到有一个onchange
事件属性用于检测表单中的更改并执行某个javascript函数。但是,这需要用户在表单字段外单击,使其与onblur
非常相似。
实际上有一种方法可以在表单更改时执行功能,而无需等待用户单击表单外部吗?
我知道你可以使用JavaScript超时每隔几毫秒检查一次表单,但我更喜欢没有它们的解决方案。另外,我不仅限于形式元素;我可以使用contenteditable
divs
。
我不认为代码是必要的,但我可以根据需要添加我的意思的示例代码。
答案 0 :(得分:1)
jQuery具有强大的功能,可以提供您所追求的功能,但如果您只需要运行一个简单的脚本,则可以使用onkeydown和onkeypress等功能。
<input type="text" onkeydown="myFunction()">
来源:
答案 1 :(得分:1)
如果我自己这样做,我会听取表格输入的变化事件。就个人而言,我认为使用jQuery会更容易。
$('form input, form select').change(function() {
console.log('form has been changed');
});
答案 2 :(得分:1)
如果您想确保在表单中任何类型的输入发生变化时(例如复选框,选择列表,单选按钮等而不仅仅是文本),那么您可以使用我放在一起的以下代码段(假设您是使用jQuery)
$('form input[type=text]').keyup(formUpdated);
$('form input[type!=text], form select').change(formUpdated);
function formUpdated() {
alert('input changed');
}
您可以在行动here中看到它。
这只是消除对此的需求的一种很好的方式:
<input type="text" onkeyup="formUpdated();">
<select onchange="formUpdated();">
</select>
<input type="radio" onchange="formUpdated();">
<input type="checkbox" onchange="formUpdated();">