Skip to content

Blur event inside form can cause "no event handler associated with this event" exception #21241

Closed
@SteveSandersonMS

Description

@SteveSandersonMS

Scenario:

<EditForm OnValidSubmit="NavigateToAnotherPage">
    <input @blur="@(() => {})" />
</EditForm>

Pressing "enter" inside the input causes:

System.ArgumentException: There is no event handler associated with this event. EventId: '45'.
Parameter name: eventHandlerId
  at Microsoft.AspNetCore.Components.RenderTree.Renderer.DispatchEventAsync (:44300/System.UInt64 eventHandlerId, Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo fieldInfo, System.EventArgs eventArgs) <0x3124c68 + 0x00054> in <filename unknown>:0 
  at Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer.DispatchEventAsync (:44300/System.UInt64 eventHandlerId, Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo eventFieldInfo, System.EventArgs eventArgs) <0x31248a0 + 0x00078> in <filename unknown>:0 
  at :44300/Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer.ProcessNextDeferredEventAsync () <0x3477c48 + 0x000a6> in <filename unknown>:0 
    at Object.endInvokeDotNetFromJS (blazor.webassembly.js:1)
    at Object.invokeJSFromDotNet (blazor.webassembly.js:1)

Looks like the "navigate away" gets processed before the "blur", so the component has been disposed by the time we process its "blur" event handler.

Metadata

Metadata

Assignees

Labels

DoneThis issue has been fixedarea-blazorIncludes: Blazor, Razor ComponentsbugThis issue describes a behavior which is not expected - a bug.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions