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();">