如何使用 jquery 验证输入字段的更改?

发布于 2024-10-15 08:31:22 字数 649 浏览 3 评论 0原文

我有一个 input 字段:

<input type="text" name="notifyEmail" id="parametersEmail" value="" size=40 />

我有一大块 jquery 代码,当我点击选项卡或以其他方式离开该字段时,它会调用验证例程:

$("#parametersEmail").blur(function(event) {
    validateParameterEmail();
});

我想做的是运行 每当输入字段的值或内容发生更改时,都会调用 validateParameterEmail() 函数。

所以我随后也尝试了 .change() 处理程序:

$("#parametersEmail").change(function(event) {
    validateParameterEmail();
});

但是当我更改 parametersEmail 的内容时,该处理程序不会调用验证函数。

我应该使用另一个处理程序吗?或者我可以不将多个事件处理程序附加到输入字段吗?

I have an input field:

<input type="text" name="notifyEmail" id="parametersEmail" value="" size=40 />

I have a chunk of jquery code that works when I hit tab or otherwise leave the field, which calls a validation routine:

$("#parametersEmail").blur(function(event) {
    validateParameterEmail();
});

What I would like to do is run the validateParameterEmail() function whenever the value or content of the input field changes.

So I then also tried the .change() handler:

$("#parametersEmail").change(function(event) {
    validateParameterEmail();
});

But when I change the contents of parametersEmail, this handler does not call the validation function.

Is there another handler I should be using, instead? Or can I not attach multiple event handlers to the input field?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

奢欲 2024-10-22 08:31:23

(近 2017 年的现实)

最好的方法是在所有有关输入值更改的需要事件上设置一次回调。

有:

  • keyup :用户在输入中键入了一些内容
  • 更改:有关输入中存储更改的常见已知方法
  • 单击:某些输入也通过鼠标进行更改
  • 粘贴:是的! Ctrl+V、Crtl+Ins、RightMouseButton+Paste 也可以更改输入值
  • propertychange :当某些 JS 以任何方式更改我们的输入时,此事件将触发
  • input :支持所有现代浏览器的新标准事件,也使用它

所以,我们可以将它们全部设置一次:

$("#parametersEmail").bind("propertychange change click keyup input paste", function(event) {
    validateParameterEmail();
});

希望这对某人有帮助。 ;)

( Reality on almost 2017-th year )

The best way is to set once the callback on all need events about input value changing.

There are:

  • keyup : user typed something in the input
  • change : common known method about stored changes in input
  • click : some inputs take changes by mouse too
  • paste : Yea! Ctrl+V, Crtl+Ins, RightMouseButton+Paste can change input value too
  • propertychange : when some JS changes our input at any way, this event will fired
  • input : new standard's event that supports all modern browsers, use it too

So, we can set all of them once:

$("#parametersEmail").bind("propertychange change click keyup input paste", function(event) {
    validateParameterEmail();
});

Hope this helps for someone. ;)

南汐寒笙箫 2024-10-22 08:31:23

更改是指当您单击离开/移离输入时。您可能正在寻找onKeyUp()

Change refers to when you click away/move from the input. You may be looking for onKeyUp().

甜妞爱困 2024-10-22 08:31:22

尝试 $("#parametersEmail").keydown(function(event) {})

Try $("#parametersEmail").keydown(function(event) {})

你是年少的欢喜 2024-10-22 08:31:22

试试这个:

$("#parametersEmail").bind('blur', function(event) {} );

$("#parametersEmail").bind('keyup', function(event) {} );

Try this:

$("#parametersEmail").bind('blur', function(event) {} );

and

$("#parametersEmail").bind('keyup', function(event) {} );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文