标签: unobtrusive-validation

jquery.validate.unobtrusive不使用动态注入元素

我正在使用ASP.Net MVC3,更简单的方法来使用客户端验证将启用jquery.validate.unobtrusive.对于那些来自服务器的东西,一切正常.

但是当我尝试用javascript注入一些新的"输入"时,我知道我需要调用$.validator.unobtrusive.parse()来重新绑定验证.但是,所有这些动态注入的字段都不起作用.

更糟糕的是,我尝试手动绑定使用jquery.validate它也无法正常工作.有什么想法吗?

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

98
推荐指数
6
解决办法
7万
查看次数

不引人注目的验证不适用于动态内容

我在尝试使用不显眼的jquery验证来处理通过AJAX调用动态加载的局部视图时遇到问题.

我花了几天时间试图让这段代码运转起来没有运气.

这是视图:

@model MvcApplication2.Models.test

@using (Html.BeginForm())
{
 @Html.ValidationSummary(true);
 <div id="res"></div>
 <input id="submit" type="submit" value="submit" />
}
Run Code Online (Sandbox Code Playgroud)

部分视图:

@model MvcApplication2.Models.test

@Html.TextAreaFor(m => m.MyProperty);
@Html.ValidationMessageFor(m => m.MyProperty);

<script type="text/javascript" >
  $.validator.unobtrusive.parse(document);
</script>
Run Code Online (Sandbox Code Playgroud)

该模型:

  public class test
  {
    [Required(ErrorMessage= "required field")]
    public int MyProperty { get; set; }
  }
Run Code Online (Sandbox Code Playgroud)

控制者:

    public ActionResult GetView()
    {
        return PartialView("Test");
    }
Run Code Online (Sandbox Code Playgroud)

最后,javascript:

$(doument).ready(function () {
$.ajax({
    url: '/test/getview',
    success: function (res) {

        $("#res").html(res);
        $.validator.unobtrusive.parse($("#res"));
    }
});

$("#submit").click(function () {
    if ($("form").valid()) {
        alert('valid');
        return true;
    } …
Run Code Online (Sandbox Code Playgroud)

unobtrusive-validation asp.net-mvc-4

93
推荐指数
4
解决办法
6万
查看次数

使用MVC和数据注释在客户端添加大于0的验证器的最佳方法是什么?

如果某个字段中的值大于0,我希望能够只允许表单提交.我想可能Mvc Range属性允许我只输入1个值来表示只有大于测试,但是没有运气,因为它坚持最小和最大值.

任何想法如何实现这一目标?

asp.net-mvc unobtrusive-validation

77
推荐指数
3
解决办法
7万
查看次数

如何在@Html帮助程序生成的MVC中更改"data-val-number"消息验证

假设这个模型:

Public Class Detail
    ...
    <DisplayName("Custom DisplayName")>
    <Required(ErrorMessage:="Custom ErrorMessage")>
    Public Property PercentChange As Integer
    ...
end class
Run Code Online (Sandbox Code Playgroud)

和观点:

@Html.TextBoxFor(Function(m) m.PercentChange)
Run Code Online (Sandbox Code Playgroud)

将继续这个HTML:

   <input data-val="true" 
    data-val-number="The field 'Custom DisplayName' must be a number." 
    data-val-required="Custom ErrorMessage"     
    id="PercentChange" 
    name="PercentChange" type="text" value="0" />
Run Code Online (Sandbox Code Playgroud)

我想自定义data-val-number我猜测生成的错误消息,因为它PercentChange是一个Integer.我正在寻找这样一个属性来改变它,range或者任何相关的不起作用.
我知道有可能编辑不显眼的js文件本身或在客户端覆盖它.我想像data-val-number服务器端的其他人一样更改错误消息.

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

75
推荐指数
7
解决办法
7万
查看次数

使用jQuery 1.9的MVC 4项目中的jquery.validate.js出错

我使用Visual Studio 2012中的模板创建了一个新的ASP.Net MVC 4项目.升级到jQuery 1.9后,登录功能中断.具体来说,我得到了错误

0x800a138f - JavaScript运行时错误:无法获取未定义或空引用的属性"调用"

在第1172行,jquery.validate.js中的第5列

我该如何解决这个问题?

jquery jquery-validate unobtrusive-validation

62
推荐指数
4
解决办法
7万
查看次数

MVC 4客户端验证无法正常工作

任何人都可以告诉我为什么客户端验证不适用于我的MVC 4应用程序.

_layout.schtml

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
Run Code Online (Sandbox Code Playgroud)

在我的web.config中,我有:

<appSettings>
   <add key="ClientValidationEnabled" value="true" />
   <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

在我的login.cshtml页面中,我有:

@using (Html.BeginForm())
{
    <div class="formscontent">

        <ol>
            <li>
                @Html.LabelFor(x => x.AgreementNumber)
                <br />
                @Html.TextBoxFor(x => x.AgreementNumber, new { size = "30" })
                <br />
                @Html.ValidationMessageFor(m => m.AgreementNumber)
                <br />
                <br />
            </li>
            <li>
                @Html.LabelFor(x => x.UserName)
                <br />
                @Html.TextBoxFor(x => x.UserName, new { size = "30" })
                <br />
                @Html.ValidationMessageFor(m => m.UserName)
                <br />
                <br />
            </li>
            <li>
                @Html.LabelFor(x => x.Password)
                <br …
Run Code Online (Sandbox Code Playgroud)

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

54
推荐指数
8
解决办法
10万
查看次数

Chrome中的不显眼验证无法使用dd/mm/yyyy进行验证

我正在尝试使用不同浏览器中使用日期选择器的最简单方案.我怀疑我做的事情非常简单,但是经过大量的搜索,我仍然没有找到解决方案.下面是一些代表我正在尝试的示例代码.

如果我使用Chrome(v12.0.742.122)并从选择器中选择日期,例如13/08/2011,即使我已明确指定格式为'dd/mm /,jQuery验证逻辑也不允许页面提交YY".

如果我将格式更改为'dd/M/yy'并选择类似13/Aug/2011的日期,则可以在Chrome中使用,但之后不会在IE中提交(v8.0.7600.16385).在FireFox(v3.6.18)中,两种格式都有效.

我需要哪些验证脚本才能支持Chrome中'dd/mm/yy'的日期格式?

<html>
 <head>
  <link rel="stylesheet" type="text/css" href="jquery-ui.css" />
  <script type="text/javascript" src="jquery-1.4.4.js"></script>
  <script type="text/javascript" src="jquery.validate.js"></script>
  <script type="text/javascript" src="jquery.validate.unobtrusive.js"></script>
  <script type="text/javascript" src="jquery-ui.js"></script>
  <script type="text/javascript">
      $(document).ready(function () {
    $('.date').datepicker({ dateFormat: 'dd/mm/yy' });
            $.validator.addMethod("dateRule", function(value, element) {
      return true;
    },
    "Error message");
      });
  </script>
 </head>
 <body>
    <form>
        Date: <input type="text" name="myDate" class="date dateRule" />
        <input type="submit" />
    </form>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

jquery jquery-ui datepicker jquery-validate unobtrusive-validation

53
推荐指数
4
解决办法
4万
查看次数

在控制器方法中重新验证修改后的ViewModel?

编辑 - 我们正在使用MVC4开发预览....

我正在为一个FishingTrip类实现一个编辑页面. FishingTrip包含简单Crew对象的子集合(即FishingTripID,CrewID,CrewPosition).

我正在使用Jarrett Meyer的方法来添加,编辑和删除Crew集合.我正在使用不显眼的验证来指定属性Crew都是Required.

我的问题:当我从列表中逻辑删除一个项目时(按照Jarrett的方法),我不希望该项目得到验证.

我已成功调整客户端的"removeRow"方法,以禁用对逻辑删除的项目进行不显眼的验证,以便尽管存在包含空白字段的项目,表单仍会发布.

在我的控制器方法中[HttpPost] Edit,ModelState.IsValid启动为false(正如预期 - 因为逻辑删除的项目包含空白字段.)所以我从我的ViewModel中删除该项目....但ModelState.IsValid仍然是假的.

总之,我(我想)我想在控制器方法中修改我的ViewModel以删除有问题的项目,然后调用某种"revalidate",并ModelState.IsValid显示为true.

有任何想法吗?

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

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

如果表单有效,如何触发jQuery函数

我有一个jQuery函数绑定到我的提交按钮,如下所示:

$(function () {
    $('#signupform').submit(function () {
        alert('test');
    });
});
Run Code Online (Sandbox Code Playgroud)

但是,无论表单是否有效,它都会触发.我的模型摆放着很多DataAnnotations和客户端验证工作良好,但我只想说jQuery函数解雇如果表单已经过验证.我该如何做到这一点?

编辑:澄清一下,我正在使用MVC DataAnnotations + jQuery的不显眼的javascript来处理客户端验证.我没有写自己的javascript验证例程.内置的jQuery验证在验证表单方面做得很好,但我只需要知道如何在我自己的函数中将验证结果转换为布尔值.

javascript jquery boolean unobtrusive-validation

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

不显眼的验证不适用于动态添加的局部视图

我目前在动态添加内容后面临验证问题.

我有一个强烈键入模型(Order)的视图.此订单可以包含许多项目.该模型看起来如下所示:

public class Order
{
    [Key]
    [HiddenInput]
    public int id { get; set; }

    [Display(Name = "Order Number")]
    public string number { get; set; }

    [Display(Name = "Order Date")]
    [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
    public DateTime date { get; set; }

    [Required(ErrorMessage = "Beneficiary is required.")]
    [Display(Name = "Beneficiary")]
    public int beneficiary_id { get; set; }

    [Display(Name = "Beneficiary")]
    public Beneficiary beneficiary { get; set; }

    [Display(Name = "Items")]
    public List<Item> items { get; set; …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc partial-views dynamically-generated razor unobtrusive-validation

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