c# javascript mvc - 模型验证后出现 Javascript window.confirm 框集

Posted

技术标签:

【中文标题】c# javascript mvc - 模型验证后出现 Javascript window.confirm 框集【英文标题】:c# javascript mvc - Javascript window.confirm Box set appear after model validation 【发布时间】:2016-11-22 04:03:32 【问题描述】:

我的 MVC 项目中有一个场景。

我有这个模型,以每个属性的“必需”验证为例。

public class ResetPasswordViewModel

    [Required]
    public string UserName  get; set; 

    [Required]
    public string Password  get; set; 

    [Required]
    public string NewPassword  get; set; 

    [Required]
    [Compare("NewPassword", ErrorMessageResourceType = typeof(Resources.localize), ErrorMessageResourceName = "ErrorMessagePasswordNotMatch")]
    public string ConfirmPassword  get; set; 

我的视图中有一个类似这样的 html 表单

@using (Html.BeginForm("register", "account", FormMethod.Post, new  data_ajax = "false", id = "loginForm" ))

@Html.ValidationSummary()

<ul data-role="listview" data-inset="true">
    <li data-role="list-divider">@Resources.localize.AccountDetails</li>

    <li data-role="fieldcontain">
        @Html.LabelFor(m => m.UserName)
        @Html.TextBoxFor(m => m.UserName)            
    </li>

    <li data-role="fieldcontain">
        @Html.LabelFor(m => m.Password)
        @Html.PasswordFor(m => m.Password)            
    </li>

    <li data-role="fieldcontain">
        @Html.LabelFor(m => m.NewPassword)
        @Html.PasswordFor(m => m.NewPassword)
    </li>

    <li data-role="fieldcontain">
        @Html.LabelFor(m => m.ConfirmPassword)
        @Html.PasswordFor(m => m.ConfirmPassword)
    </li>

    <li data-role="fieldcontain">
        <input data-ajax="false" type="submit" value="Login" />
    </li>
</ul>

当我通过单击登录按钮提交表单时,我想添加一个 window.confirm 框,并且我希望 window.confirm 仅在模型验证中表单有效时触发。

当我简单地在登录按钮上设置 window.confirm 时,无论表单是否有效,它都会首先触发。

是否有可能实现,window.confirm 仅在表单有效后才出现? (不使用任何 jQuery 验证器)

【问题讨论】:

您将表单提交给控制器方法,因此您已离开当前页面。您希望在哪里显示“确认” 【参考方案1】:

您可以在您的页面中使用 Jquery validate.js,例如

然后使用

$("input[type='submit']").on("click", function()  
   var isValid = $("#loginForm").valid();
   if(isValid)
      var isConfirm = confirm("Are you sure you want to proceed?");
      if(!isConfirm)
        return false;
      
    
);

【讨论】:

以上是关于c# javascript mvc - 模型验证后出现 Javascript window.confirm 框集的主要内容,如果未能解决你的问题,请参考以下文章

javascript MVC 4的kendo UI datepicker验证

Javascript、Razor/MVC3 中的 C# if 语句

如何通过 JavaScript 回调在 C# 中运行 QUnit 测试并返回测试结果?

在 MVC3、C# 中使用视图模型中的新数据更新视图

ASP.net 验证码(C#) MVC

使用 C# 计算 MVC 模型中的时间跨度