我真的想在我的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验证器插件有什么成功吗?如果是这样,使用多个表单很像使用单独的验证组?
在下面显示的代码中,如何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
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) 我正在尝试使用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)
问题是即使没有检查任何内容,表单也会提交.我该如何解决这个问题?
在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 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
可能重复:
在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)
当天数超过该月的总天数时,还有其他任何方法可以检测无效日期吗?
更新:一个更大的问题是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) 我有一个搜索表单和基于挖空的网格结果.执行搜索时,会在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删除错误消息后必须删除.
我的脚本抛出错误:
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) 给定以下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
jquery-validate ×10
jquery ×8
javascript ×4
validation ×2
ajax ×1
asp.net ×1
asp.net-mvc ×1
checkbox ×1
date ×1
dom-events ×1
html ×1
webforms ×1