File tree Expand file tree Collapse file tree 2 files changed +28
-0
lines changed
src/BootstrapBlazor/Components/InputNumber Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -83,6 +83,12 @@ public partial class BootstrapInputNumber<TValue>
8383 [ Parameter ]
8484 public string ? PlusIcon { get ; set ; }
8585
86+ /// <summary>
87+ /// 获得/设置 失去焦点回调方法 默认 null
88+ /// </summary>
89+ [ Parameter ]
90+ public Func < TValue , Task > ? OnBlurAsync { get ; set ; }
91+
8692 [ Inject ]
8793 [ NotNull ]
8894 private IStringLocalizer < BootstrapInputNumber < TValue > > ? Localizer { get ; set ; }
@@ -281,6 +287,11 @@ private async Task OnBlur()
281287 // set component value empty
282288 await InvokeVoidAsync ( "clear" , Id ) ;
283289 }
290+
291+ if ( OnBlurAsync != null )
292+ {
293+ await OnBlurAsync ( Value ) ;
294+ }
284295 }
285296
286297 private TValue SetMin ( TValue val )
Original file line number Diff line number Diff line change @@ -138,6 +138,23 @@ await cut.InvokeAsync(() =>
138138 Assert . Null ( cut . Instance . Value ) ;
139139 }
140140
141+ [ Fact ]
142+ public async Task OnBlurAsync_Ok ( )
143+ {
144+ var blur = false ;
145+ var cut = Context . RenderComponent < BootstrapInputNumber < int > > ( builder =>
146+ {
147+ builder . Add ( a => a . OnBlurAsync , v =>
148+ {
149+ blur = true ;
150+ return Task . CompletedTask ;
151+ } ) ;
152+ } ) ;
153+ var input = cut . Find ( "input" ) ;
154+ await cut . InvokeAsync ( ( ) => { input . Blur ( ) ; } ) ;
155+ Assert . True ( blur ) ;
156+ }
157+
141158 [ Fact ]
142159 public async Task ShowButton_Ok ( )
143160 {
You can’t perform that action at this time.
0 commit comments