Asp.net mvc 使用jQuery提交MVC Razor后验证所有表单字段

Asp.net mvc 使用jQuery提交MVC Razor后验证所有表单字段,asp.net-mvc,validation,razor,Asp.net Mvc,Validation,Razor,我在MVC应用程序中使用jquery验证,选择并保留输入后,它会自动验证。另一方面,如果用户未选择输入,则即使提交表单,也不会验证输入。所以,我想在按下MVC Razor页面上的submit按钮后验证所有相关字段。我该怎么做呢?我创建了一个简单的示例。这只是给您一个开始,您仍然需要根据需要修改此代码。本例使用jquery表单验证 模型 控制器与动作 看法 我创建了一个简单的示例。这只是给您一个开始,您仍然需要根据需要修改此代码。本例使用jquery表单验证 模型 控制器与动作 看法 尝试使用jq

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

我创建了一个简单的示例。这只是给您一个开始,您仍然需要根据需要修改此代码。本例使用jquery表单验证

模型

控制器与动作

看法


我创建了一个简单的示例。这只是给您一个开始,您仍然需要根据需要修改此代码。本例使用jquery表单验证

模型

控制器与动作

看法



尝试使用jquery表单验证,请参见此链接:@Lin:这不是我问题的答案。实际上,我遵循了geektantra.com/2009/09/jquery-live-form-validation页面上的示例,根据该页面,我所遵循的都是正确的。有什么错误吗?另一方面,我查看了您的演示,但在从输入转移到提交表单后,我需要进行验证,如示例geektantra.com/2009/09/jquery-live-form-validation所示。你能举一个例子吗,比如在那个页面上有一个隐藏的字段?提前谢谢。嗨@H.Johnson,网上有很多例子。我建议你看看下面的链接:和。尝试一些例子,看看它们是否适合您。您遇到了所有这些问题,因为您没有使用jQuery验证插件!对于使用jQuery验证的实际工作代码示例,.@Lin:谢谢您的帮助。很抱歉,我以前从未使用过这样的验证插件,因为jquery.validate.js使用了我遵循的方法,所以我认为我使用了jquery验证插件。无论如何,我需要一个例子来执行以下要求:1当然我想使用jQuery验证插件。我希望在切换到另一个控件实时验证后验证字段。2除此之外,如果用户直接按下提交按钮,所有必要的字段都应按照第一步中的说明进行验证。提前感谢…尝试使用jquery表单验证,请参阅此链接:@Lin:这不是我问题的答案。实际上,我遵循了geektantra.com/2009/09/jquery-live-form-validation页面上的示例,根据该页面,我所遵循的都是正确的。有什么错误吗?另一方面,我查看了您的演示,但在从输入转移到提交表单后,我需要进行验证,如示例geektantra.com/2009/09/jquery-live-form-validation所示。你能举一个例子吗,比如在那个页面上有一个隐藏的字段?提前谢谢。嗨@H.Johnson,网上有很多例子。我建议你看看下面的链接:和。尝试一些例子,看看它们是否适合您。您遇到了所有这些问题,因为您没有使用jQuery验证插件!对于使用jQuery验证的实际工作代码示例,.@Lin:谢谢您的帮助。很抱歉,我以前从未使用过这样的验证插件,因为jquery.validate.js使用了我遵循的方法,所以我认为我使用了jquery验证插件。无论如何,我需要一个例子来执行以下要求:1当然我想使用jQuery验证插件。我希望在切换到另一个控件实时验证后验证字段。2除此之外,如果用户直接按下提交按钮,所有必要的字段都应按照第一步中的说明进行验证。提前谢谢…非常感谢你的解释。正如你所说,这对我来说是一个好的开始,现在我正在改进我的验证。我希望你的回答能为那些不愿帮助的人树立一个好榜样。关于…。@H.Johnson,没问题。很高兴能帮助您。@H.Johnson,我使用jquery更新了关于移除按键的答案。Remove keyup与keypress相同。@H.Johnson,您所说的是jquery不引人注目的验证。这不是jquery表单验证。Jquery表单验证是在您单击submit按钮之后,将触发验证。下面的链接是使用jquery表单验证,您可以看看。我想您需要决定使用哪种验证方法。不引人注目的验证是常用的验证方法。但在某些情况下,如您之前所说,您希望在单击“提交”按钮后验证每个字段,您应该使用表单验证。非常感谢您的良好解释。正如你所说,这对我来说是一个好的开始,现在我正在改进我的验证。我希望你的回答能为那些不愿帮助的人树立一个好榜样。关于…。@H.Johnson,没问题。很高兴能帮助您。@H.Johnson,我使用jquery更新了关于移除按键的答案。Remove keyup与keypress相同。@H.Johnson,您所说的是jquery不引人注目的验证。这不是jquery表单va
眼睑。Jquery表单验证是在您单击submit按钮之后,将触发验证。下面的链接是使用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>
}
$("#youElementId").bind('keypress', function (e) {
    if (e.keyCode == 13) {
        return false;
    }
    return true;
});