标签: jquery-validate

ASP.NET Web窗体中的jQuery Validation插件

我真的想在我的ASP.NET Web窗体应用程序(而不是MVC)中使用jQuery Validation插件.我觉得比在任何地方添加asp验证器更容易,并将控件设置为验证所有这些的字段.

我在设置像class ="required email"这样的类时遇到了一些问题,我认为这与主表单标签中的表单标签有关.

当使用在asp控件中被破坏的名称调用jquery validate时,我也会遇到问题

// validate signup form on keyup and submit
$("#signupForm").validate({
    rules: { 
        username: {
            required: true,
            minlength: 2
        }, },
    messages: { 
        username: {
            required: "Please enter a username",
            minlength: "username at least 2 characters"
        }, 
    }.

.......

        <p>
            <label for="username">
                Username</label>
            <input id="username" name="username" />
        </p>
Run Code Online (Sandbox Code Playgroud)

因为这

<asp:TextBox ID="tbUsername"  runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

呈现为

<input name="ctl00$ContentPlaceHolder1$tbUsername" type="text" id="ctl00_ContentPlaceHolder1_tbUsername" />
Run Code Online (Sandbox Code Playgroud)

并破坏了这个名字.我可以使用ClientID <%=tbUsername.ClientID %>,但不能使用ClientName

有人在asp.net上使用jquery验证器插件有什么成功吗?如果是这样,使用多个表单很像使用单独的验证组?

asp.net validation jquery webforms jquery-validate

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

使用jQuery或纯JS获取多选框的价值

在下面显示的代码中,如何val()使用jQuery或纯JavaScript 获取函数中多选框的值?

<script>
    function val() {
        //Get values of mutliselect drop down box
    }

    $(document).ready(function () {
        var flag = 0;
        $('#emp').change(function () {
            var sub = $("OPTION:selected", this).val()
            if (flag == 1) $('#new_row').remove();
            $('#topics').val('');
            var html = '<tr id="new_row" class="new_row"><td>Topics:</td><td>  <select    id="topic_l" name="topic_l" class="topic_l" multiple="multiple">';
            var idarr = new Array();
            var valarr = new Array(); { %
                for top in dict.tops %
            }
            idarr.push('{{top.is}}');
            valarr.push('{{pic.ele}}'); { % endfor %
            }
            for (var i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-validate jquery-selectors dom-events

42
推荐指数
3
解决办法
15万
查看次数

在Ajax提交之前进行jQuery表单验证

JavaScript位:

$(document).ready(function()
    {
            $('#form').submit(function(e)
            {     

                e.preventDefault();
                var $form = $(this);

                // check if the input is valid
                if(! $form.valid()) return false;
                    $.ajax(
                    {
                    type:'POST',
                    url:'add.php',
                    data:$('#form').serialize(),
                    success:function(response)
                    {
                        $("#answers").html(response);
                    }
                });     

            })
    });
Run Code Online (Sandbox Code Playgroud)

HTML位:

    <input type="text" name="answer[1]" class="required" />
    <input type="text" name="answer[2]" class="required" />
Run Code Online (Sandbox Code Playgroud)

所以这是我试图使用的代码.我的想法是在我用Ajax发送表单之前验证我的所有输入.我现在已经尝试了很多版本,但每次我最终都提交,即使表格没有完全填写.我的所有输入都是"必需"类.谁能看到我做错了什么?

此外,我依赖基于类的要求,因为我的输入名称是用PHP生成的,所以我永远无法确定我得到的名称[id]或输入类型.

当我在"页面"中浏览时,我会显示/隐藏问题.

<input type="button" id="next" onClick="toggleVisibility('form3')" class="next-btn"/>
Run Code Online (Sandbox Code Playgroud)

JS:

function toggleVisibility(newSection) 
        {
            $(".section").not("#" + newSection).hide();
            $("#" + newSection).show();
        } 
Run Code Online (Sandbox Code Playgroud)

validation ajax jquery jquery-validate

41
推荐指数
5
解决办法
21万
查看次数

如何验证具有多个复选框的表单以检查至少一个

我正在尝试使用jquery的validate插件验证表单.我想要求用户检查组中的至少一个复选框,以便提交表单.这是我的jquery代码:

$().ready(function() {
$("#subscribeForm").validate({
   rules:   { list: {required: "#list0:checked"} },
   messages:  { list:  "Please select at least one newsletter"}                                                        
 });
 });
Run Code Online (Sandbox Code Playgroud)

这是html表单:

<form action="" method="GET" id="subscribeForm">
<fieldset id="cbgroup">
    <div><input name="list" id="list0" type="checkbox"  value="newsletter0" >zero</div>
    <div><input name="list" id="list1" type="checkbox"  value="newsletter1" >one</div>
    <div><input name="list" id="list2" type="checkbox"  value="newsletter2" >two</div>
</fieldset>
<input name="submit" type="submit"  value="submit">
Run Code Online (Sandbox Code Playgroud)

问题是即使没有检查任何内容,表单也会提交.我该如何解决这个问题?

html javascript checkbox jquery-validate

40
推荐指数
5
解决办法
13万
查看次数

我们如何按类指定jquery验证插件的规则?

jQuery验证插件的伟大工程,是非常容易使用:

$(".selector").validate({
})
Run Code Online (Sandbox Code Playgroud)

只需设置"必需的电子邮件"等css类,就会显示默认消息.

但是,我需要自定义消息.文档说您可以使用元素的键值对及其相应的消息来指定规则:

$(".selector").validate({
   rules: {
     name: "required",
     email: {
       required: true,
       email: true
     }
   },
   messages: {
     name: "Please specify your name",
     email: {
       required: "We need your email address to contact you",
       email: "Your email address must be in the format of name@domain.com"
     }
   }
})
Run Code Online (Sandbox Code Playgroud)

但是,为每个表单元素指定规则是不切实际的,尤其是ASP.NET中的服务器生成的控件.是否可以指定适用于所有元素的规则?或者我可以以某种方式使用类选择器?

我尝试了以下,但它不起作用:

$("#frmMyForm").validate
({
    rules:
    {
        $(".required email"):
        {
            required: true,
            email: true
        }
    },
    messages:
    {
        $(".required email"):
        {
            required: "Please enter your email address",
            email: "Your …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate

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

jQuery验证无法在IE7 + IE8中运行

我正在尝试在我的网站上的表单上使用jQuery Validation插件.该表单适用于FF,Chrome,Opera和Safari.它还没有在IE7或IE8中工作.

下面是我的代码的简化版本,似乎适用于每个浏览器,但IE.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">

<title>Form</title>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8/jquery.validate.js"></script>

<script type="text/javascript">
    $(document).ready(function(){
       var validator = $("form").validate ({
       rules: {
                first_name: "required"
              },
       messages: {
                first_name: "Enter your firstname"
                 }
       });
    });
</script>

</head>

<body>

<form method="post">
    <label for="first_name" class="hide">First Name</label> 
    <input type="text" name="first_name" value="" id="first_name" class="required" />
    <button type="submit" id="submit" name="submit">Submit</button>
</form>

</body>

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

编辑:我们现在知道使用jquery最新,我使用jQuery v1.6,是问题.我改回到v1.5.2并改变了

var validator = $("form").validate ({
Run Code Online (Sandbox Code Playgroud)

至:

$("form").validate ({
Run Code Online (Sandbox Code Playgroud)

现在一切都在IE中运行.谢谢.

jquery internet-explorer jquery-validate internet-explorer-8 internet-explorer-7

37
推荐指数
3
解决办法
6万
查看次数

JavaScript检测有效日期

可能重复:
在JavaScript中检测"无效日期"日期实例

我使用以下内容来检测有效日期:

var text = $('#Date').val();
var date = Date.parse(text);

if (isNaN(date)) {
      // Invalid date
}
Run Code Online (Sandbox Code Playgroud)

但发现Date.parse认为以下是有效日期(mm/dd/yyyy)

  • 二零一一年二月三十零日
  • 2011年11月31日

当天数超过该月的总天数时,还有其他任何方法可以检测无效日期吗?

更新:一个更大的问题是jQuery验证插件也没有将其检测为无效日期!

解:

根据@ Guffa的评论,我创建了以下函数来验证日期:

function validDate(text) {

    var date = Date.parse(text);

    if (isNaN(date)) {
        return false;
    }

    var comp = text.split('/');

    if (comp.length !== 3) {
        return false;
    }

    var m = parseInt(comp[0], 10);
    var d = parseInt(comp[1], 10);
    var y = parseInt(comp[2], 10);
    var date = new Date(y, m - 1, d);
    return (date.getFullYear() == y && …
Run Code Online (Sandbox Code Playgroud)

javascript jquery date jquery-validate

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

手动向jQuery验证器添加和删除验证错误

我有一个搜索表单和基于挖空的网格结果.执行搜索时,会在asp.net mvc上进行一些服务器端验证,如果模型状态无效,则通过JSON返回模型错误列表.

我已经设置了jQuery验证,并使用jquery.unobtrusive插件自动映射默认验证(正则表达式,必需等).我发现$.validate().showErrors({prop:error})基于来自服务器的json响应动态显示错误的方法,但我认为这不是使用它来显示服务器验证消息的正确方法,因为之后不能重置字段(input-validation-error class不删除).

我需要一种工作方法来设置和重置客户端上的错误,如果存在的话$.validate.

在jsFiddle上有我的问题的例子:http://jsfiddle.net/goranobradovic/ughCm/

要重现它,请单击添加错误,然后删除错误,输入保持红色.

这是因为showErrors函数不会添加由验证触发的任何规则,因此字段保持"有效",并且它不在elements()用于从无效字​​段中resetForm删除的列表中input-validation-error class.

基本上,我想要简单的方法来添加/删除验证规则与自定义消息,永远不会在客户端上满足,以避免表格提交时我手动设置错误和invalid class删除错误消息后必须删除.

jquery jquery-validate

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

Jquery验证插件 - TypeError:$(...).validate不是函数

我的脚本抛出错误:

TypeError:jQuery.validator未定义additional-methods.js:20 TypeError:$(...).validate不是函数index.php:115

可能,我在jQuery代码中有错误.

<head>
<script type="text/javascript" src="js/jquery-1.10.2.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>
</head>
<body>
            <form id="registerForm" method="post" action="logrej.php">
            <input name="login" type="text"/>
            <input name="nick" type="text"/>
            <input type="password" id="passw" name="password"/>
            <input type="password" name="retype" />
            <input type="submit" value="Zarejestruj!" />
            </form>
            <script>

                $("#registerForm").validate({
                    rules: {
                        login: {
                            required:true,
                            rangelenght: [4,20],
                            remote:"look.php"
                        },
                        nick : {
                            required:true,
                            rangelenght:[4,20],
                            remote:"look.php"
                        },
                        password: {
                            required:true,
                            rangelenght:[4.20]
                        },
                        retype: {
                            required:true,
                            equalTo:"#passw"
                        }
                    },
                    messages:{
                        login:{
                            required:"To pole jest wymagane!"
                        }
                    }
                })

            </script>
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-validate

37
推荐指数
3
解决办法
15万
查看次数

MVC3验证 - 从组中需要一个

给定以下viewmodel:

public class SomeViewModel
{
  public bool IsA { get; set; }
  public bool IsB { get; set; }
  public bool IsC { get; set; } 
  //... other properties
}
Run Code Online (Sandbox Code Playgroud)

我希望创建一个自定义属性,验证至少有一个可用属性为true.我设想能够将属性附加到属性并分配组名称,如下所示:

public class SomeViewModel
{
  [RequireAtLeastOneOfGroup("Group1")]
  public bool IsA { get; set; }

  [RequireAtLeastOneOfGroup("Group1")]
  public bool IsB { get; set; }

  [RequireAtLeastOneOfGroup("Group1")]
  public bool IsC { get; set; } 

  //... other properties

  [RequireAtLeastOneOfGroup("Group2")]
  public bool IsY { get; set; }

  [RequireAtLeastOneOfGroup("Group2")]
  public bool IsZ { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望在表单提交之前在客户端验证表单更改中的值,这就是为什么我更愿意在可能的情况下避免使用类级别属性. …

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

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