modal-dialog 相关问题

指用于向用户显示重要信息的图形对话框。这些对话框显示在所有其他内容之上,阻止应用程序流,直到收到用户输入。

在特定条件下,中断 Quasar QDialog 在 Escape 键上关闭

我使用 Quasar 对话框来显示一些内容。我希望用户在单击“退出”按钮时能够关闭对话框,这样效果很好。但是,如果用户在对话框中进行了一些编辑...

回答 1 投票 0

我想在加载模态时禁用 Formik 验证

我在我的 React Typescript 项目中使用 Formik 和 Yup,我有一个将保存新值的模式,我将 Formik 验证添加到我的模式中的字段中,但是当我单击页面中的添加按钮时...

回答 1 投票 0

如何在函数中打开模态框

我想通过单击一个按钮来打开一个模式,该按钮应该导出 Excel 文件中的一些数据。 这是我的代码,但模式仍然很接近。 我是反应新手,我做错了什么吗? 比...

回答 1 投票 0

打开模态时图片出现故障

当你打开一个白色背景,里面有图片的模态时,当你打开它时,图片似乎在模态后面,因此出现了一条白色条纹,这是清晰可见的...

回答 1 投票 0

Wordpress + Contact Form 7 + 最简单的模态窗口

我在我的 WordPress 网站上使用了最简单的 jQuery 模式。 我想在联系表 7 发送后显示一条消息。 事件发生时如何打开模态窗口? 文件。

回答 1 投票 0

如何正确嵌套模态组件?

我有一个问题。我正在尝试创建一个用于报告的模式窗口,该窗口动态地提供报告评论和帖子,因此无需创建多个模式窗口。我已经创建...

回答 1 投票 0

wordpress 3.5 在插入媒体模式窗口中按媒体类别排序

我使用 media-categories-2 插件对我的媒体文件进行排序,但我没有在页面->插入媒体模式窗口中对我的媒体文件进行排序,并且我找不到所需的插件。请帮助我

回答 1 投票 0

在 React 中使用一个可重用的模态组件来处理不同的输入配置是个好主意吗? (我正在使用MUI模态组件)

我正在开发一个 React 应用程序,我需要在应用程序的各个部分显示具有不同输入字段配置(例如,文本输入、自动完成输入、自定义输入)的模式...

回答 1 投票 0

如何保持模式子窗体打开直到其 close() 方法被调用

作为初学者,我假设模态窗体在调用 close 方法之前保持打开状态,但在 VB.net 中似乎并非如此。我有一个主窗体和一个子窗体,就像电话嘘声......

回答 1 投票 0

使用 php javascript 将 pdf 打开为模式

我正在尝试使用 laravel 11 和 vue js 3 将 PDF 文件打开到模式中。 为此,我在控制器中构建了一个包含以下内容的函数: 公共函数 getPdfPath(请求 $request) { $

回答 1 投票 0

将参数传递给模态弹出窗口

我想知道是否可以将按钮的 id 和 class 作为参数传递给模态,以便我可以在模态页面中显示动态数据。 导航栏.剃刀: 我想知道是否可以将按钮的 id 和 class 作为参数传递给模态,以便我可以在模态页面中显示动态数据。 导航栏.剃刀: <li><button class ="firstButtonDialog" id="mm" @onclick="() => _modal.Open()">mm</button></li> <li><button class ="secondButtonDialog" id="cm" @onclick="() => _modal.Open()">cm</button</li> <li><button class ="thirdButtonDialog" id="meter" @onclick="() =>_modal.Open()">meter</button></li>meter</button></li> private Modal _modal { get; set; } public string _min { get; set; } public string _max { get; set; } private void OnModalMin(string min) { _min = min; } private void OnModalMax(string max) { _max = max; } 模态页面中的“标题”和“测量”需要是动态的。我想在这里使用传递的参数来显示动态数据。 莫代尔剃须刀: <h5 class="modal-title">firstButtonDialog</h5> //title need to be dynamic based on button clicked <div class="modal-body"> <label for="Min">Enter Min</label> <input @bind="min" type="text" id="Min" name="Min">[mm]<br> // [mm] measurement need to be dynamic based on button clicked <label for="Max">Enter Max:</label> <input @bind="max" type="text" id="Max" name="Max">[mm]<br> </div> <div class="modal-footer"> <button type="button" class="btn btn-primary" @onclick="() => Done()">Done</button> </div> @code { private string min; private string max; public Guid Guid = Guid.NewGuid(); public string ModalDisplay = "none;"; public string ModalClass = ""; [Parameter] public EventCallback<string> OnDoneCallback1 { get; set; } [Parameter] public EventCallback<string> OnDoneCallback2 { get; set; } public void Open() { ModalDisplay = "block;"; ModalClass = "Show"; ShowBackdrop = true; StateHasChanged(); } public void Close() { ModalDisplay = "none"; ModalClass = ""; ShowBackdrop = false; StateHasChanged(); } public async Task Done() { await InvokeAsync(() => OnDoneCallback1.InvokeAsync(min)); await InvokeAsync(() => OnDoneCallback2.InvokeAsync(max)); } } 这个问题有一个简单的答案,或者一个更长更全面的答案,演示如何构建一个“基本”模态对话框框架。这是后者。 您需要将 Modal Dialog 与 EditForm 分开。您应该能够在模态对话框中托管任何表单。 首先,定义一个 IModalDialog 接口,这样我们就可以拥有多个模态对话框的实现 - 比如一个简单的干净的 Css 或 Bootstrap 。 public interface IModalDialog { public ModalRequest ModalRequest { get; } public bool IsActive { get; } public bool Display { get; } public Task<ModalResult> ShowAsync<TModal>(ModalRequest modalRequest) where TModal : IComponent; public Task<bool> SwitchAsync<TModal>(ModalRequest modalRequest) where TModal : IComponent; public void Update(ModalRequest? modalRequest); public void Dismiss(); public void Close(ModalResult result); } 我们传入一个ModalRequest: public record ModalRequest { public IDictionary<string, object> Parameters { get; init; } = new Dictionary<string, object>(); public object? InData { get; init; } = null; } 然后回来ModalResult public class ModalResult { public ModalResultType ResultType { get; private set; } = ModalResultType.NoSet; public object? Data { get; set; } = null; public static ModalResult OK() => new ModalResult() { ResultType = ModalResultType.OK }; public static ModalResult Exit() => new ModalResult() { ResultType = ModalResultType.Exit }; public static ModalResult Cancel() => new ModalResult() { ResultType = ModalResultType.Cancel }; public static ModalResult OK(object data) => new ModalResult() { Data = data, ResultType = ModalResultType.OK }; public static ModalResult Exit(object data) => new ModalResult() { Data = data, ResultType = ModalResultType.Exit }; public static ModalResult Cancel(object data) => new ModalResult() { Data = data, ResultType = ModalResultType.Cancel }; public enum ModalResultType { NoSet, OK, Cancel, Exit } } 我们的基本实现 - ModalDialog.razor。它使用 TaskCompletionSource 在 async 上下文中运行。您可以通过调用 ShowAsync<TModal> 将 TModal 设置为要在表单中托管的组件并通过 ModalRequest 实例提供设置和数据来打开对话框。然后,您等待退出表单时设置为完成的提供 Task。我们使用 DynamicComponent 来创建 TModal。请注意,我们将 Modal 实例级联到托管组件。 @implements IModalDialog @if (this.Display) { <CascadingValue Value="(IModalDialog)this"> <div class="base-modal-background" @onclick="OnBackClick"> <div class="base-modal-content" @onclick:stopPropagation="true"> <DynamicComponent Type=this.ModalContentType Parameters=this.ModalRequest.Parameters /> </div> </div> </CascadingValue> } @code { [Parameter] public bool ExitOnBackGroundClick { get; set; } = false; public ModalRequest ModalRequest { get; private set; } = new ModalRequest(); public object? InData { get; } = null; public bool Display { get; protected set; } = false; protected TaskCompletionSource<ModalResult> _ModalTask { get; set; } = new TaskCompletionSource<ModalResult>(); protected Type? ModalContentType = null; public bool IsActive => this.ModalContentType is not null; public Task<ModalResult> ShowAsync<TModal>(ModalRequest modalRequest) where TModal : IComponent { this.ModalRequest = modalRequest; this.ModalContentType = typeof(TModal); this._ModalTask = new TaskCompletionSource<ModalResult>(); this.Display = true; InvokeAsync(StateHasChanged); return this._ModalTask.Task; } public async Task<bool> SwitchAsync<TModal>(ModalRequest modalRequest) where TModal : IComponent { this.ModalRequest = modalRequest; this.ModalContentType = typeof(TModal); await InvokeAsync(StateHasChanged); return true; } public void Update(ModalRequest? modalRequest = null) { this.ModalRequest = modalRequest ?? this.ModalRequest; InvokeAsync(StateHasChanged); } private void OnBackClick(MouseEventArgs e) { if (ExitOnBackGroundClick) this.Close(ModalResult.Exit()); } public async void Dismiss() => await this.Reset(ModalResult.Cancel()); public async void Close(ModalResult result) => await this.Reset(result); private async Task Reset(ModalResult result) { _ = this._ModalTask.TrySetResult(ModalResult.Cancel()); this.Display = false; this.ModalContentType = null; await InvokeAsync(StateHasChanged); } } 它是组件 css - ModalDialog.razor.css div.base-modal-background { display: block; position: fixed; z-index: 101; /* Sit on top */ left: 0; top: 0; width: 100%; /* Full width */ height: 100%; /* Full height */ overflow: auto; /* Enable scroll if needed */ background-color: rgb(0,0,0); /* Fallback color */ background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ } div.base-modal-content { background-color: #fefefe; margin: 10% auto; padding: 10px; border: 2px solid #888; width: 90%; } 您的数据类别: public class MyData { public int Min { get; set; } public int Max { get; set; } } 和表单 - MyForm.razor。这将捕获级联 IModalDialog 并与 IModalDialog 交互以获取任何提供的数据并关闭对话框。 <div class="modal-title border-bottom border-secondary"> <h5>@this.Title</h5> </div> <div class="modal-body"> <label class="form-label" for="Min">Enter Min [mm]</label> <input class="form-control" @bind=model.Min type="number"> <label class="form-label" for="Max">Enter Max [mm]:</label> <input class="form-control" @bind=model.Max type="number"> </div> <div class="modal-footer"> <button type="button" class="btn btn-primary" @onclick="() => Done()">Done</button> </div> @code { private MyData model = new MyData(); [Parameter] public string Title { get; set; } = "I Need a Title!"; [CascadingParameter] private IModalDialog? modalDialog { get; set; } private ModalRequest modalRequest => modalDialog?.ModalRequest ?? new ModalRequest(); protected override void OnInitialized() { if (modalDialog is null) throw new NullReferenceException("You must cascade a IModalDialog to use this Form"); model = (MyData)(modalDialog?.ModalRequest.InData ?? new MyData()); } private void Done() => modalDialog?.Close(ModalResult.OK(model)); } 最后是演示页面。它托管 ModalDialog 组件并与其交互以打开对话框。 @page "/" <PageTitle>Modal Dialog Demo</PageTitle> <div class="m-2 b-2"> <button class="btn btn-primary" @onclick=OpenDialog1>Edit Model 1</button> </div> <div class="alert alert-primary"> <strong>Model 1</strong> Min: @this.model1.Min Max: @this.model1.Max </div> <div class="m-2 b-2"> <button class="btn btn-dark" @onclick=OpenDialog2>Edit Model 2</button> </div> <div class="alert alert-dark"> <strong>Model 2</strong> Min: @this.model2.Min Max: @this.model2.Max </div> <ModalDialog @ref=modalDialog ExitOnBackGroundClick=false /> @code { private MyData model1 = new MyData { Max = 20, Min = -10 }; private MyData model2 = new MyData { Max = 50, Min = -50 }; private IModalDialog? modalDialog; private async Task OpenDialog1() { var parameters = new Dictionary<string, object> { { "Title", "Modal Form 1" } }; var request = new ModalRequest { InData = this.model1, Parameters = parameters }; if (this.modalDialog is not null) await modalDialog.ShowAsync<MyForm>(request); // This won't complete until the dialog closes and the Task is complete. // We can use any return data at this point // and this component will render as part of the ComponentBase UI event handling code. } private async Task OpenDialog2() { var parameters = new Dictionary<string, object> { { "Title", "Modal Form 2" } }; var request = new ModalRequest { InData = this.model2 }; if (this.modalDialog is not null) await modalDialog.ShowAsync<MyForm>(request); } } 这是其中一个对话框的屏幕截图: 代码暂时放在这里 - https://github.com/ShaunCurtis/SO73617831 我知道这已经有几年了,但我喜欢你在这里所做的概念。我在使用示例时注意到的一件事是 InData 被修改,这在某些情况下可能不是所需的结果。我知道这可以在派生对话框中处理。我还注意到上面示例中的 Reset(ModelResult result) 始终返回 ModalResult.Cancel。那应该是结果参数吗?由于您的临时存储库已消失,我看不到您是否进行了其他更改。

回答 2 投票 0

如何从表单获取数据到插件中?

我正在开发一个插件,它有一个模态引导程序的形式,供用户输入数据。 当我点击保存时,它返回到同一页面,我需要获取信息。它看起来像... ... 我正在开发一个插件,它有一个模态引导程序的形式,供用户输入数据。 当我点击保存时,它返回到同一页面,我需要获取信息。看起来像... <form> <input class="form-control" type="any" id="compraTC" style="margin-left:5px" placeholder="0.0000" required> <button type="submit" class="btn btn-primary" id="btnGuardarTC">Guardar Cambios</button> </form> if(isset($_POST['btnGuardarTC'])) { echo $_POST['compraTC']; } else echo "no hay retorno"; 我无法获取新值。你能帮我一下吗? 您好! 解决方案!我需要开发更多插件! 您需要在 <form> 标签中包含更多信息。看起来您正在 PHP 中使用 POST,因此您需要在 HTML 中指定它,以及 Web 服务器上 PHP 文件的路径。 <form method="POST" action="./path/to/php/file.php"> <input class="form-control" type="any" id="compraTC" style="margin-left:5px" placeholder="0.0000" required> <button type="submit" class="btn btn-primary" id="btnGuardarTC">Guardar Cambios</button> </form> 我建议进一步研究这一点,因为这些信息应该可以通过 HTML 和 PHP 的在线教程轻松访问。 有关 HTML 中 <form> 标签的更多信息,请参阅此处:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form。

回答 1 投票 0

如何在 Bootstrap v5 中使用 javascript 编辑模态 data-bs-keyboard 属性?

我正在尝试拥有一种设置面板,可以启用/禁用模式的 data-bs-keyboard 属性,允许或禁止它们使用转义键关闭。 到目前为止唯一的代码...

回答 1 投票 0

如何检测模态<dialog>是否打开?

我有一个包含多个 元素的页面,我使用其 showModal() 方法将其作为模式打开。 我想检测当前是否从 Javascript 打开了其中任何一个(因为某些事件

回答 1 投票 0

R 在菜单项单击上打开模式,但仅一次

我想通过单击 menuItem 选项卡来打开 modalDialog 窗口。在这里提出并回答了类似的问题,我将其用作模板: 在菜单项上单击打开模式 与我的不同

回答 1 投票 0

CDK 拖放预览位于模式对话框后面

在查看了许多堆栈溢出答案后,我发布了这个问题。我需要在对话框模式上启用拖放功能。我在表行上使用它。我可以拖放...

回答 1 投票 0

Koltin Jetpack compose,ModalBottomSheetLayout 停在屏幕中间

我是jetpack compose的新手,我真的很喜欢它。但遇到了一个问题:我有一个模式可以容纳我所有的屏幕尺寸,按照倍数教程我可以使用 ModalBottomSheetLa 来做到这一点...

回答 2 投票 0

MUI 基础模态背景未注册点击

我尝试使用 MUI Base Modal 组件和 scss 模块来实现模态样式: 从 '@mui/base' 导入 { Modal as BaseModal, ModalProps as BaseModalProps }; const 背景 = () =&g...

回答 1 投票 0

如何修复在 Android 移动设备上显示的 React Native Modal 中缺失的底部部分?

在React Native中,我在Modal中有一个图像。 但是,当首次显示 Modal 时,它会遇到底部缺失的错误。 Modal首次显示时出现此错误 当我尝试做的时候

回答 2 投票 0

在 ng-template 到 ng-content 之间传递数据(Angular 17)

如何将lists$从list.component传递到ng-template 我提供的代码您可以看到函数调用的管道以及 ng-template 如何传递到 modal.compoent.html。 ................................

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.