Javascript MVC在表单上提交打开JQuery对话框并等待用户响应

Javascript MVC在表单上提交打开JQuery对话框并等待用户响应,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有MVC应用程序;在表单内部,当用户单击“保存”按钮时,应将表单提交给控制器并保存更改。如果满足某些条件,它将弹出JQuery UI dialoog,执行一些ajax调用,请求用户在对话框中输入,并在用户单击对话框中的“保存”按钮后提交表单 我的问题是,在表单“保存”按钮上单击,对话框会出现,但页面会立即发布(我可以看到加载程序在浏览器选项卡窗口中工作),用户永远无法与对话框交互,因为它在成功发布页面后消失。 我的HTML: 您应该将e.PreventDefault()作为$('#btnFor

我有MVC应用程序;在表单内部,当用户单击“保存”按钮时,应将表单提交给控制器并保存更改。如果满足某些条件,它将弹出JQuery UI dialoog,执行一些ajax调用,请求用户在对话框中输入,并在用户单击对话框中的“保存”按钮后提交表单

我的问题是,在表单“保存”按钮上单击,对话框会出现,但页面会立即发布(我可以看到加载程序在浏览器选项卡窗口中工作),用户永远无法与对话框交互,因为它在成功发布页面后消失。 我的HTML:


您应该将e.PreventDefault()作为$('#btnFormSubmit')中的第一行代码。单击(函数(e){…}),它将阻止表单提交事件的执行,以便您可以执行ajax调用和逻辑


有关调用的更多信息,请查看

您应该将e.PreventDefault()作为$('#btnFormSubmit')中的第一行代码。单击(函数(e){…}),它将阻止表单提交事件的执行,以便您可以执行ajax调用和逻辑


有关此调用的更多信息,请查看

您自己通过Ajax发布表单。按钮类型应为
type=“button”
,这将防止邮件返回

<button type="button" ...>Save</button>
保存

此外,您不应该使用ajaxsuccess:…$('form').submit()同时;这没有道理

您自己通过Ajax发布表单。按钮类型应为
type=“button”
,这将防止邮件返回

<button type="button" ...>Save</button>
保存

此外,您不应该使用ajaxsuccess:…$('form').submit()同时;这没有道理

如果在$(“#btnFormSubmit”)中不满足条件。单击,我需要提交表单,使用e.preventdefault它不做任何操作。您可以通过在表单检查中调用jquery submit函数来提交表单。这就是我在对话框保存按钮事件中所做的。我的问题是,当我不启动对话框(条件不满足)时,我需要表单保存按钮按预期工作并发布表单。当前,如果$(“#btnFormSubmit”)中的条件不满足,则在任一场景中都会触发。单击,我需要提交表单,而使用e.preventdefault它不会执行任何操作。您可以通过在表单上调用jquery submit函数来提交表单。检查此处,这就是我在对话框保存按钮事件中所做的操作。我的问题是,当我不启动对话框(条件不满足)时,我需要表单保存按钮按预期工作并发布表单。目前,无论哪种情况,
@Igor-input-tag都不允许使用html,但在本例中,您可以使用。如果我使用对话框按钮type='button',我的表单在保存后仍会发布。我也做了,但那根本不会启动我的表单保存(在这种情况下,条件不满足)@AidaM您的代码仍将发布,因为您在成功回调函数中有$('form').submit()。基本上,您可以通过ajax发布帖子;成功后,您将再次手动执行完整的回发。就像我说的,这没有意义。@Win我已经在ajax成功中删除了对form.submit的调用,但是一旦对话框出现,页面就会发布到控制器,而不必等待ajax调用完成。
@Igor input tag不允许html,但在这种情况下,您可以。如果我使对话框按钮类型为class='button',我的表单保存后仍会发布。我也做了,但那根本不会启动我的表单保存(在这种情况下,条件不满足)@AidaM您的代码仍将发布,因为您在成功回调函数中有$('form').submit()。基本上,您可以通过ajax发布帖子;成功后,您将再次手动执行完整的回发。就像我说的,这没有意义。@Win我已经在ajax成功中删除了对form.submit的调用,但是一旦对话框出现,页面就会被发布到controller,而不必等待ajax调用完成。
<button type="button" ...>Save</button>