使用jQuery提交MVC Razor后验证所有表单域

 mobiledu2502880317 发布于 2023-02-13 15:14

我在我的MVC应用程序中使用jquery验证,在选择并保留输入后,它会自动验证.另一方面,如果用户未选择输入,即使提交表单,也不会验证它们.所以,我想在按下MVC Razor页面上的提交按钮后验证所有相关字段.我怎样才能做到这一点?

1 个回答
  • 我创建了一个简单的例子.它只是为您提供一个开始,您仍然需要根据您的需要修改此代码.此示例使用jquery表单验证.

    模型

      public class Vehicle
        {
            public int Id { get; set; }
            public string Make { get; set; }
            public string Model { get; set; }
        }
    

    控制器和行动

    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
    }
    

    视图

    @model JqueryValidationDemo.Models.Vehicle
    
    @{
        ViewBag.Title = "Jquery Form Validation Demo";
    }
    <script src="~/Scripts/jquery-2.0.3.js"></script>
    <script src="~/Scripts/jquery.validate.js"></script>
    <script>
        $(document).ready(function () {
                $('#myform').validate({ // initialize the plugin
                    rules: {
                        Make: {
                            required: true,
                            minlength: 2
                        },
                        Model: { required: true }
                    },
                    messages: {
                        Make: {
                            required: "Make is required!",
                            minlength: "Make Name at least 2 characters long!"
                        },
                        Model: {
                            required: "Modl is required!"
                        }
                    },
                    submitHandler:
                        $("#myform").on('submit', function () {
                            if ($("#myform").valid()) {
                                //Do something here
                                alert("Validation passed");
                            }
                            return false;
                        })
                })
        });
    </script>
    
    @using (Html.BeginForm("Index", "Home", FormMethod.Get, new { @id = "myform" }))
    {
        <fieldset>
            <legend>Vehicle</legend>
            <div class="editor-label">
                @Html.LabelFor(model => model.Make)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Make)
            </div>
    
            <div class="editor-label">
                @Html.LabelFor(model => model.Model)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Model)
            </div>
            <p>
                <input type="submit" value="Submit" />
            </p>
        </fieldset>
    }
    

    注意:小心你的jquery引用,你不需要使用jquery.validate.unobtrusive.js.

    希望它会给你一个良好的开端.

    更新: 删除keyup或按键

    取消按键

    $("#youElementId").bind('keypress', function (e) {
        if (e.keyCode == 13) {
            return false;
        }
        return true;
    });
    

    2023-02-13 15:17 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有