# Numeric Entry Fields not firing blur event

**URL:** <https://forum.inductiveautomation.com/t/numeric-entry-fields-not-firing-blur-event/116822>\
**Category:** Ignition\
**Created:** [August 18, 2026, 4:51pm UTC](https://forum.inductiveautomation.com/t/numeric-entry-fields-not-firing-blur-event/116822 "2026-08-18T16:51:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![eaolson](https://avatars.discourse-cdn.com/v4/letter/e/f07891/32.png) [@eaolson](https://forum.inductiveautomation.com/u/eaolson)\
**Post date:** [August 18, 2026, 4:51pm UTC](https://forum.inductiveautomation.com/t/numeric-entry-fields-not-firing-blur-event/116822/1 "2026-08-18T16:51:40Z")

</div>

I've noticed an oddness with the Numeric Entry Field and focus events. Is this how it's supposed to work?

First, when a NEF has focus and Enter is pressed on the keyboard, the cursor goes away, any selection is unselected, but the onBlur event does not fire. I can then click on a different widget, which gets focus, but again, onBlur does not fire. If I click off the component or type a tab, the NEF loses focus and onBlur does fire.

Second, when the NEF gets focus, the onFocus event fires twice. I was thinking maybe it's firing once for the container and once for the input, but I wasn't sure how to tell the difference. Adding Stop Propagation did not prevent this.

(In retrospect, I was trying to do something when the NEF changed and onActionPerformed appears to be the place to do this. It does fire if Enter is pressed or if the component loses focus and the value has changed.)

---

<div class="post-metadata">

**Author:** ![bobby.miller](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bobby.miller/32/85153_2.png) [@bobby.miller](https://forum.inductiveautomation.com/u/bobby.miller)\
**Post date:** [August 18, 2026, 5:12pm UTC](https://forum.inductiveautomation.com/t/numeric-entry-fields-not-firing-blur-event/116822/2 "2026-08-18T17:12:56Z")

</div>

Short answer: it's a funky composite control. This is better shown diagramatically

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/9/8927dd3903583383cdf42b5ca22149d2f643ceed.png)

---

<div class="post-metadata">

**Author:** ![eaolson](https://avatars.discourse-cdn.com/v4/letter/e/f07891/32.png) [@eaolson](https://forum.inductiveautomation.com/u/eaolson)\
**Post date:** [August 18, 2026, 8:23pm UTC](https://forum.inductiveautomation.com/t/numeric-entry-fields-not-firing-blur-event/116822/3 "2026-08-18T20:23:43Z")

</div>

Yes, that seems like what I observed. Where is that slide from?

It looks like the "Press Enter, click different component, no onBlur event" is not intended behavior and I will report that.

---

<div class="post-metadata">

**Author:** ![bobby.miller](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bobby.miller/32/85153_2.png) [@bobby.miller](https://forum.inductiveautomation.com/u/bobby.miller)\
**Post date:** [August 18, 2026, 10:53pm UTC](https://forum.inductiveautomation.com/t/numeric-entry-fields-not-firing-blur-event/116822/4 "2026-08-18T22:53:59Z")

</div>

I put it together with my new software. Not ready just yet to announce it, coming soon!

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [August 19, 2026, 1:16am UTC](https://forum.inductiveautomation.com/t/numeric-entry-fields-not-firing-blur-event/116822/5 "2026-08-19T01:16:34Z")

</div>

_Edit: I see your in retrospect comment, so my comment below is irrelevant, but perhaps interesting nonetheless..._ 🫪

What are you actually trying to do in the onBlur script? If it's something simple that should happen client-side like that can be handled by CSS, then you should use CSS (perspective styles) with a pseudo-class (i.e. `:hover`), as these are guaranteed to fire. Anything that relies on a handshake back to the gateway is _not_ guaranteed (this is also why momentary/jog buttons are a no go in Perspective)

For example, if you want to show a component only when another component is hovered, this should be handled in CSS, **not** by using the event handler scripts and custom props.

---

<div class="post-metadata">

**Author:** ![eaolson](https://avatars.discourse-cdn.com/v4/letter/e/f07891/32.png) [@eaolson](https://forum.inductiveautomation.com/u/eaolson)\
**Post date:** [August 19, 2026, 5:06pm UTC](https://forum.inductiveautomation.com/t/numeric-entry-fields-not-firing-blur-event/116822/6 "2026-08-19T17:06:40Z")

</div>

> What are you actually trying to do in the onBlur script?

I have a screen with some inputs and I wanted to do a couple of things like update the style when the user has modified the value but it hasn't been saved back to the database yet. It does have to be event driven, so CSS wouldn't work.
