标签: jquery-validate

jquery.validate插件 - 如何在表单验证之前修剪值

我正在使用JörnZaefferer的优秀jquery.validation插件,我想知道是否有一种简单的方法可以在验证之前自动修剪表单元素?

以下是验证电子邮件地址的表格的简化但有效的示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"
           type="text/javascript"></script>
    <script src="http://ajax.microsoft.com/ajax/jquery.validate/1.5.5/jquery.validate.js" 
           type="text/javascript"></script>
    <script type="text/javascript">
        $().ready(function() {
          $("#commentForm").validate({
            rules: {
                email: {
                    required: true,
                    email: true
                }
            }
          });
        });
    </script>
</head>
<body>

  <form class="cmxform" id="commentForm" method="get" action="">
     <label for="cemail">E-Mail:</label><input id="cemail" name="email"
      class="required email" />
     <input class="submit" type="submit" value="Submit"/>
  </form>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

问题是一些用户感到困惑,因为他们意外地在他们的电子邮件地址中输入了一些空格,例如"test@test.com".表单将不会提交并显示错误消息:"请输入有效的电子邮件地址.".非技术用户不知道如何发现空白,可能只是退出网站而不是试图弄清楚他们做错了什么.

无论如何,我希望我可以jQuery.trim(value)在验证之前链接" ",这样就删除了空白并且验证错误永远不会发生?

我可以使用addMethod来构建我自己的电子邮件验证功能.但我确信有一个更优雅的解决方案?

jquery jquery-validate

56
推荐指数
8
解决办法
5万
查看次数

jQuery验证使用类而不是名称值

我想使用jquery validate插件验证表单,但是我无法在html中使用'name'值 - 因为这是服务器应用程序也使用的字段.具体来说,我需要限制从组中检查的复选框的数量.(最多3个.)我看过的所有例子都使用每个元素的name属性.我想要做的是改用类,然后为此声明一个规则.

HTML

这有效:

<input class="checkBox" type="checkbox" id="i0000zxthy" name="salutation"  value="1" />
Run Code Online (Sandbox Code Playgroud)

这不起作用,但是我的目标是:

<input class="checkBox" type="checkbox" id="i0000zxthy" name="i0000zxthy"  value="1" />
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

var validator = $(".formToValidate").validate({    
    rules:{     
    "salutation":{  
             required:true,  
        },  
        "checkBox":{  
             required:true,  
          minlength:3  }  
   }   
});
Run Code Online (Sandbox Code Playgroud)

是否可以这样做 - 有没有一种方法可以在规则选项中定位类而不是名称?或者我是否必须添加自定义方法?

干杯,马特

html javascript css jquery jquery-validate

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

JQuery验证多个字段,但有一个错误

我如何使用JQuery Validate插件为3个字段提供一条错误消息.例如3个dob字段.默认情况下,如果所有3个字段都留空,我将收到3条错误消息.我只想将一个错误链接到3个字段.如果有任何空白,则会出现错误.

jquery jquery-validate

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

不需要的属性不断获取data-val-required属性

这是验证的模型:

[MetadataType(typeof(TagValidation))]
public partial class Tag
{
}

public class TagValidation
{
        [Editable(false)]
        [HiddenInput(DisplayValue = false)]
        public int TagId { get; set; }

        [Required]
        [StringLength(20)]
        [DataType(DataType.Text)]
        public string Name { get; set; }
    //...
}
Run Code Online (Sandbox Code Playgroud)

这是观点:

    <h2>Create</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Tag</legend>

        <div>@Html.EditorForModel()</div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>
Run Code Online (Sandbox Code Playgroud)

这是得到的渲染:

<form action="/Tag/Create" method="post">
    <fieldset>
        <legend>Tag</legend>
        <div><input data-val="true" data-val-number="The field TagId must be a number." data-val-required="The …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc jquery-validate

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

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万
查看次数

jQuery验证 - 隐藏显示验证错误消息/显示自​​定义错误

我正在使用jQuery Validate,但我真的不希望收到任何错误消息.相反,我需要在违规输入/选择/等周围设置红框.这些红色框是一块蛋糕,但我仍然无法删除错误信息.如何完全禁用它们?

jquery-validate

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

jQuery在单个字段上禁用规则验证

我正在使用MVC创建在运行时生成的表单.为了验证,我正在尝试使用非常方便的jQuery验证库.我有标签的cdata属性中每个字段的验证表达式

<input type="text" name="xyz" id="xyz" class="defaultTextBox"
  cdata="{validate:{required:true, decimal:true, messages:
          {required:'Please enter an decimal value', 
           decimal:'Please enter a valid decimal'}}}">
Run Code Online (Sandbox Code Playgroud)

这很好用.现在我还有一个要求是根据页面上的逻辑显示和隐藏某些字段,我需要在隐藏字段上禁用验证,这样它们就不会干扰表单提交.只需将所需的:true转换为false并返回true即可.只有我不知道怎么做.

任何人都有这方面的经验吗?

validation jquery-validate

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

jQuery验证器和使用AJAX的自定义规则

我阅读了关于jQuery验证器的回复,其中概述了一种根据数据库中的值检查用户名的方法.

我已经尝试过实现这个方法,但无论从PHP文件返回什么,我总是得到用户名已被取消的消息.

这是自定义方法......

$.validator.addMethod("uniqueUserName", function(value, element) {
  $.ajax({
      type: "POST",
       url: "php/get_save_status.php",
      data: "checkUsername="+value,
      dataType:"html",
   success: function(msg)
   {
      // if the user exists, it returns a string "true"
      if(msg == "true")
         return false;  // already exists
      return true;      // username is free to use
   }
 })}, "Username is Already Taken");
Run Code Online (Sandbox Code Playgroud)

这是验证码...

username: {
    required: true,
    uniqueUserName: true
},
Run Code Online (Sandbox Code Playgroud)

是否有一种特定的方式我应该从PHP返回消息.

谢谢

一个

validation ajax jquery jquery-validate

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

如何使用jQuery验证无效字段?

focusInvalid选项,true默认情况下.但它只在表单提交发生时才有效.如果我使用valid方法验证表单,那么它不起作用.那么问题是如何在valid使用时关注无效字段?

请参阅此演示以了解其中的差异.只需按下那里的按钮.

jquery jquery-validate

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