开发者

How do I use jquery to validate an input field on change?

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 handle开发者_如何学Pythonrs to the input field?


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


Try this:

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

and

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


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


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜