Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当表单实际发生更改时,是否有方法检查表单?_Javascript_Html_Forms_Onchange - Fatal编程技术网

Javascript 当表单实际发生更改时,是否有方法检查表单?

Javascript 当表单实际发生更改时,是否有方法检查表单?,javascript,html,forms,onchange,Javascript,Html,Forms,Onchange,我意识到有一个onchange事件属性用于检测表单中的更改并执行特定的javascript函数。但是,这需要用户在表单字段外单击,使其非常类似于onblur 是否有一种方法可以在表单更改时执行函数,而不必等待用户在表单外部单击 我知道可以使用JavaScript超时每隔几毫秒检查一次表单,但我更喜欢不使用JavaScript超时的解决方案。而且,我不仅仅局限于形式元素;我可以使用contenteditabledivs 我认为没有必要编写代码,但如果需要,我可以添加一个示例代码。jQuery具有强

我意识到有一个
onchange
事件属性用于检测表单中的更改并执行特定的javascript函数。但是,这需要用户在表单字段外单击,使其非常类似于
onblur

是否有一种方法可以在表单更改时执行函数,而不必等待用户在表单外部单击

我知道可以使用JavaScript超时每隔几毫秒检查一次表单,但我更喜欢不使用JavaScript超时的解决方案。而且,我不仅仅局限于形式元素;我可以使用
contenteditable
divs


我认为没有必要编写代码,但如果需要,我可以添加一个示例代码。

jQuery具有强大的功能,可以提供所需内容,但如果只需要运行一个简单的脚本,可以使用onkeydown和onkeypress等功能

<input type="text" onkeydown="myFunction()">

资料来源:


如果我自己做这件事,我会倾听表单输入上的更改事件。就我个人而言,我认为使用jQuery会更容易做到这一点

$('form input, form select').change(function() {
    console.log('form has been changed');
});

如果您想确保在表单中任何类型的输入发生更改时(例如,复选框、选择列表、单选按钮等,而不仅仅是文本)都能捕获,那么您可以使用我编写的以下代码片段(假设您使用的是jQuery)

你可以在行动中看到它

这只是一种很好的方式,可以消除这种需要:

<input type="text" onkeyup="formUpdated();">

<select onchange="formUpdated();">
</select>

<input type="radio" onchange="formUpdated();">

<input type="checkbox" onchange="formUpdated();">


所以每次按键后我都会运行脚本?好主意。如果你写一个正式的回复,我可以接受。别忘了选择列表,它们不会呈现为输入标签!非常感谢。不幸的是,我不能在我当前的项目中使用jQuery,但这绝对有帮助+1.
<input type="text" onkeyup="formUpdated();">

<select onchange="formUpdated();">
</select>

<input type="radio" onchange="formUpdated();">

<input type="checkbox" onchange="formUpdated();">