标签: unobtrusive-validation

ASP.NET Core MVC 验证不需要的字段

我的页面正在验证我提交时不需要的字段,即使没有为此字段配置验证。

创建.cshtml

@model Lawtech.App.ViewModels.ProcessoViewModel

@{
    ViewData["Title"] = "Novo processo";
}

<h3 style="padding-top: 10px">@ViewData["Title"] </h3>

<hr />
<div class="row">
    <div class="col-md-12">
        <form asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="row">
                <div class="form-group col-md-4">
                    <label asp-for="Numero" class="control-label"></label>
                    <input asp-for="Numero" class="form-control" />
                    <span asp-validation-for="Numero" class="text-danger"></span>
                </div>
                <div class="form-group col-sm-4">
                    <label asp-for="IdArea" class="control-label"></label>
                    <div class="input-group">
                        <select id="slcArea" asp-for="IdArea" class="form-control select2"></select>
                        <div class="input-group-btn">
                            <a asp-action="CreateArea" class="btn btn-info" style="border-radius:0 0.25rem 0.25rem 0" data-modal="">
                                <span class="fa fa-plus"></span>
                            </a>
                        </div>
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="form-group col-md-6 mt-4">
                    <input …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc unobtrusive-validation asp.net-core-mvc asp.net-core

2
推荐指数
1
解决办法
4972
查看次数

ASP.net MVC 3在JQuery模式弹出问题中不引人注意的客户端验证

当我尝试在应用程序中实现ASP.net MVC 3 Unobtrusive Client Validations时,呈现的html不会生成由JQuery生成的span标记.

我只有以下渲染html,我使用JQuery模态弹出窗口作为我的部分视图的容器.

<input data-val="true" data-val-required="The City field is required." id="City" name="City" type="text" value="Seattle" />
Run Code Online (Sandbox Code Playgroud)

但是,当我使用不显眼的客户端验证而没有弹出JQuery Modal弹出时,它在同一个应用程序中正常工作如下.

<div class="editor-field">
  <input data-val="true" data-val-required="The City field is required." id="City" name="City" type="text" value="Seattle" />
  <span class="field-validation-valid" data-valmsg-for="City" data-valmsg-replace="true"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

当我在JQuery Modal Popup中使用Unobtrusive Client验证时,是否需要实现任何功能?

JQuery Popup Code

 $(document).ready(function () {
        $('#actionPanelDialogs div').dialog({
            autoOpen: false,
            modal: true,
            width: 700,
            appendToBody: true
        });


        $('#actions a').click(function (event) {
            event.stopPropagation();
            event.preventDefault();
            var link = $(this);
            var action = link.attr('href');
            var dialogDivId = link.attr('rel');

            var …
Run Code Online (Sandbox Code Playgroud)

jquery unobtrusive-validation asp.net-mvc-3

1
推荐指数
1
解决办法
3301
查看次数

防止MVC 3验证设置集中于无效字段.

我正在使用MVC 3不显眼的验证.当验证触发时,它将焦点设置在第一个无效控件上.我如何阻止这样做,我更习惯于Web表单,等效的是设置SetFocusOnError=false验证控件.

c# asp.net-mvc unobtrusive-validation asp.net-mvc-3

1
推荐指数
1
解决办法
2422
查看次数

动态添加输入字段的无阻碍客户端验证

我按照这个优秀的帖子在我的mvc3应用程序中生成动态控件.

而现在我正在尝试为phonenumber领域进行客户端无障碍验证.所以我在'PhoneNumber'属性中添加了'Required'属性.

无阻碍验证适用于由服务器生成/呈现的语音字段(即,在页面加载上).但它不适用于通过javascript方法动态添加的字段.

我知道我需要编写一些jquery代码来添加规则/适配器或任何通知浏览器需要验证动态添加的phonenumber字段的内容.请帮我怎么办.

谢谢,M

asp.net-mvc jquery unobtrusive-validation asp.net-mvc-3

1
推荐指数
1
解决办法
1798
查看次数

ValidationMessageFor customValidatioMessage参数,始终显示消息,不显眼

我试着向我们求助 Html.ValidationMessageFor(m=>m.MyProperty,"The field is very much required");

但是..我的使用不引人注意我的验证,但由于某种原因,似乎一旦我使用customValidationMessage参数,该属性的不引人注意的验证"中断".

或者用更简单的术语表示......无论是否输入值,都会始终显示验证消息.它根本不会更新/切换.

该属性也用于RadioButtonFor ..所以完整的"代码"是:

@Html.RadioButtonFor(m=>m.Myproperty,"Value 1")
@Html.RadioButtonFor(m=>m.Myproperty,"Value 2")
@Html.ValidationMessageFor(m=>m.MyProperty,"Please select ine of the options")
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

asp.net-mvc message customvalidator radiobuttonfor unobtrusive-validation

1
推荐指数
1
解决办法
2688
查看次数

如何停止回发或提交jQuery Unobtrusive验证事件

我正在使用jQuery Unobtrusive Validation,并希望在提交表单之前做一些事情.我不想在成功验证后回发表单,而是希望向用户显示成功消息并重置相同的表单以添加其他数据.

在下面的代码中,它仅在表单无效时显示警报,如果有效则仅显示回发.

目前我的表单已提交,即使我想避免在这种情况下回发.

@model MyProject.ViewModels.CustomerViewModel

<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>

<script type="text/javascript">
$(document).ready(function () {

    $("#addCustomer").click(function () {

        $("#myForm").validate();

        if ($("#myForm").valid()) {

            // This part doesn't get triggered

            alert('yes valid');
            //$.post(...post my data using ajax..)
            alert('data posted successfully.');
            //clear form to submit another data
            clearForm();
            return false;
        }
        else{
            alert('no not valid');
            return false;
        }

  <form id="myForm">
    <div class="formPanel">
            <label>Display Name</label>
            @Html.EditorFor(model => model.CustomerName)
            @Html.ValidationMessageFor(model => model.CustomerName)
    </div>
   <button class="btn btn-primary" id="addCustomer">Save</button>
  </div>
 </form>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc jquery jquery-validate unobtrusive-validation asp.net-mvc-4

1
推荐指数
1
解决办法
2万
查看次数

MVC5 Ajax PartialView

我需要使用Ajax.BeginForm用PartialView刷新div.我在MVC4中已经完成了十几次这样做,它完美无缺.在MVC5中,虽然不起作用:(

以下是我采取的步骤:

  • 在Visual Studio 2013中创建一个新项目"PartialAjax"(ASP.NET Web应用程序/ MVC)
  • 右键单击Views/Home并添加视图>选中"Create as partial view">将其命名为"_Test"
  • 此_Test.cshtml视图的代码:

    <p>From now on I'm gonna change my life: @DateTime.Now.ToString()</p>
    
    Run Code Online (Sandbox Code Playgroud)
  • 编辑Views/Home/Index.cshtml视图:

    @{
                ViewBag.Title = "Home Page";
    }
    @using (Ajax.BeginForm("ChangeLife", "Home", null, new AjaxOptions() { UpdateTargetId = "test", HttpMethod = "Post" }, null))
    {
        <input type="submit" value="Start" />
    }
    
    <div id="test">
        @Html.Partial("_Test")
    </div>
    
    Run Code Online (Sandbox Code Playgroud)
  • 把它放在你的HomeController中:

    public ActionResult ChangeLife()
          {
              return this.PartialView("_Test");
          }
    
    Run Code Online (Sandbox Code Playgroud)

如果单击Manage NuGet packages,默认情况下会安装jQuery和Microsoft jQuery Unobtrusive Validation.

ajax jquery partial-views unobtrusive-validation asp.net-mvc-5

1
推荐指数
1
解决办法
4648
查看次数

使用其他bool字段进行MVC远程验证

我正在尝试使用远程验证和其他bool复选框字段

[Remote("IsStorageConnectionValid", "TenantManagement", AdditionalFields = "CreateStorage")]
public String StorageConnectionString { get; set; }
Run Code Online (Sandbox Code Playgroud)

验证码

public JsonResult IsStorageConnectionValid(string storageConnectionString, bool createStorage){
Run Code Online (Sandbox Code Playgroud)

它在击中验证器方面非常有效.但是,无论复选框的值如何,createStorage始终为true.如果我使用不是复选框的其他字段,则可以完美地提供它们.

复选框作为标准创建:

  @Html.CheckBoxFor(m => m.CreateStorage)
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?或者我做错了吗?

小提琴在这里(MVC4我认为但做同样的事情)

asp.net-mvc unobtrusive-validation asp.net-mvc-5 asp.net-mvc-5.2

1
推荐指数
1
解决办法
1157
查看次数

jquery validation valid()始终返回true,并且不创建表单的novalidate ="novalidate"属性

我正在使用jquery.validate v1.14.0JörnZaefferer

<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
Run Code Online (Sandbox Code Playgroud)

我有一个项目,所有验证工作正常.如果未填充必填字段,则客户端验证会在表单汇总之前将其选中.

然而,我将所有这些形式移动到boostrap模态,并且页面的表单通过ajax调用在模态内动态加载.在此更改之后,我的客户端验证永远不会触发,我还注意到验证插件不像novalidate="novalidate"以前那样将标记添加到表单中.

这是我的代码简化

然后我使用以下jquery,因为我想捕获所有表单提交并执行一些额外的逻辑:

   $(document).on('submit', '.formDetail', function (e) { 

        e.preventDefault();

        //added this to see if it would throw error but it doesn't
        var form = $(".formDetail");
        form.validate();

         //this is always true
         if ($(this).valid()) {


            $.ajax({
                processData: false,
                contentType: false,
                data: new FormData(this),
                type: $(this).attr('method'),
                url: $(this).attr('action'),
                success: function (data) {
                   //other logic
                 }
            }); 
         }
    });
Run Code Online (Sandbox Code Playgroud)

如果String1留空并且我提交并逐步执行javascript控制台'($(this).valid())'是alwasy true.如果我改变它($(".formDetail").valid()) 的结果是相同的,即总是如此true.

它也没有像我在切换到动态ajax模式窗体之前那样在HTTP POST之前在屏幕上显示错误消息.

我怎样valid()才能上班.单步执行代码时,我的控制台中没有javascript错误,并且 …

ajax jquery jquery-validate unobtrusive-validation bootstrap-modal

1
推荐指数
2
解决办法
1万
查看次数

当通过反射检索到值时,枚举失败==

我正在尝试为MVC 6实现自定义jQuery Unobtrusive Validation属性.下面是IsValid()一个属性的实现,它查看类中的相邻属性并将其与编译时常量进行比较.

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
    ValidationResult result = ValidationResult.Success;

    // Simplest case, there is something in this field
    if (!string.IsNullOrEmpty(value?.ToString()))
        return result;

    // Check relative field
    try
    {
        // Grab the property referenced via reflection
        var relativeProperty = validationContext.ObjectType.GetProperty(this._relativePropertyName);

        // Compare the runtime value of that property to the Attribute initialized value
        if (relativeProperty.GetValue(validationContext.ObjectInstance) == this._relativeValue)
        {
            // Fail if those 2 values are equal
            result = new ValidationResult(this.ErrorMessageString); 
        }

    } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc unobtrusive-validation

1
推荐指数
1
解决办法
198
查看次数