我刚刚下载了jQuery插件表单验证引擎.到目前为止,一切都运行良好,直到我检查密码是否匹配.如果密码字段和确认密码字段都留空,则不会出现错误消息"字段不匹配",这很好,因为它们匹配.但是,当我在密码文本框中键入内容并在确认文本框中键入相同的密码时,错误消息会显示"字段不匹配".
HTML:
<form id = "signup">
<label>Password:</label>
<input type = "password" name = "txtPassword" id = "txtPassword" class = "validate[required,minSize[6],maxSize[50]]"/>
<label>Confirm Password:</label>
<input type = "password" name = "txtCPassword" id = "txtCPassword" class = "validate[required,equals[txtPassword]]"/>
</form>
Run Code Online (Sandbox Code Playgroud)
我的JS档案:
$(document).ready(function(){
$("#signup").validateEngine();
});
Run Code Online (Sandbox Code Playgroud)
在我的HTML文件中,我有验证css样式的链接,以及验证引擎和en语言.
更新2: 我发现输入的标题由于某种原因被显示为错误消息,我使用了ignoreTitle:true来确保他的标题没有被显示为错误消息。
但是,现在我的新问题是,一旦输入有效的电子邮件地址,该错误消息仍不会消失。
如何解决我的验证错误消息,以便在输入字段有效时将其隐藏?
我是jQuery Validation的新手,我似乎无法弄清楚这个问题。在此问题上的任何帮助将不胜感激。谢谢!
更新内容2:http: //jsfiddle.net/psbq8vkj/9/
JQUERY:
$(".guestlist-form").validate({
ignoreTitle: true,
errorClass: "error-class",
validClass: "valid-class",
rules: {
emailaddress: {
required: true,
email: "Please enter your correct email address."
}
},
errorPlacement: function(error, element) {
$(".myerror").html(''); // clears previous error messages
error.appendTo( ".myerror");
},
messages: {
emailaddress: {
required: "Please enter your full email address."
}
}
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<div id="updates" class="container-fluid">
<center>
<div class="title"><br />
<span class="signuptitle">Sign up to our daily newsletter.</span><br/>
</div>
<div …Run Code Online (Sandbox Code Playgroud) 我更喜欢Jquery ValidationEngine而不是Bassistance验证。我的问题是
我们不会在每行中使用一个输入,其中某些输入在同一行中,例如名字:[]姓氏:[]
当错误弹出时,错误消息重叠并且看起来很丑。
我可以对验证引擎做些什么,它仅显示最重要的错误,并且在修复错误并且用户尝试提交表单时,其他最重要的错误(如果存在)将显示在那里。
现实生活中的示例:-例如,名字和姓氏都是必填项,并且两个字段均为空,用户尝试提交,但是他只看到一个错误,将名字键入为“ Asif”,然后尝试立即提交他在“姓氏”字段中看到第二个错误,他输入了姓氏“ Ashraf”,然后表格就可以使用了。
我们能做到吗?
我使用Position Absolute的验证引擎来验证表单上的值.
问题是在验证时,错误提示不会像预期的那样附加到文本框(输入类型:文本).我知道问题在于我给文本框提供的margin-top但是我不能改变它.此处提供了示例代码段...
HTML:
<form id="frmTest" style="position:relative">
<div id="divContents" style="position:relative; overflow-y:auto; overflow-x:none;">
<div class="row1">
<span>FName:</span>
<input id="txtFName" data-prompt-position="bottomRight" class="validate[required] text-input" tabindex="1" />
</div>
<div class="row2">
<span>LName:</span>
<input id="txtLName" class="validate[required] text-input" tabindex="2" />
</div>
<div class="row3">
<span>Age:</span>
<input id="txtAge" class="validate[required, custom[integer],min[1]] text-input" tabindex="3" />
</div>
</div>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<input type="submit" id="btnSubmit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
JS:
$('#frmTest').validationEngine();
$('#txtFName').focus();
$('#btnSubmit').click(function(){
return $('#frmTest').validationEngine();
});
Run Code Online (Sandbox Code Playgroud)
我创建的div只是样本,但在实时环境中,它们是可折叠的div.此外,我不想为每个输入字段硬编码数据提示位置值,因为每个表单中有超过100个字段.所以我正在寻找处理这个问题的通用方法(我知道这可以通过CSS但不知道如何?) …
当我将这个正则表达式添加到验证引擎时,我得到一个javascript错误:"意外令牌",似乎正则表达式是错误的,因为它用红色下划线,为什么?
"time1":{
"regex": ^([0-9]|0[0-9]|1[0-3]|2[0-3]):[0-5][0-9]$,
"alertText": "* Invalid Time"
}
Run Code Online (Sandbox Code Playgroud) 我想为JQuery Validation Engine编写一个新的验证规则.你似乎所要做的就是编写一个这样的函数:
"myNewRule":
"func": function(field, rules, i, options){
//new validation function
},
"alertText": "message to be displayed if something goes wrong"
},
Run Code Online (Sandbox Code Playgroud)
现在,有谁知道如何访问字段ID(或名称)或如何传递参数?我需要验证字段B的值是否小于字段A,因此知道我应该将哪个字段与...进行比较非常重要.
我正在摆弄这里记录的jQuery验证引擎
我已在本地下载了所有JS文件.并创建了一个包含单个必需文本框字段的简单表单.
问题1
我无法为此必需规则指定自定义错误(即使我已指定custom-error-message选项).相反,它显示默认消息"此字段是必需的".我写了这个代码示例(所示的帮助下在这里)的git的,但它不工作.请指出哪里出错了.(我想用JS对象文字来代替使用等效的html5属性.)
我的代码:
<html>
<head>
<script type="text/javascript" src="scripts/jquery-1.9.0.min.js"></script>
<script type="text/javascript" src="scripts/jquery.validationEngine-en.js"></script>
<script type="text/javascript" src="scripts/jquery.validationEngine.js"> </script>
<link type="text/css" rel="stylesheet" href="styles/validationEngine.jquery.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript">
$(document).ready(function(){
$("#form1").validationEngine({'custom_error_messages' : {
'#username':{
'required':{
'message':"Hey you cannot leave this field blank."
}
}
}
});
});
</script>
</head>
<body>
<form id="form1">
<br /><br />
<h2>Form 1</h2>
Username: <input id="#username" type="text" class="validate[required]" ></input> <br />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
问题2
如何指定应用于JS中哪个元素的规则,而不是在html中指定类值.我宁愿使用干净的不显眼的HTML,而不是在HTML中混合验证特定的东西.这可以通过jQuery Validation插件实现,如下所示:
$("#register-form").validate({ … 我想使用jQuery-Validation-Engine来验证文件输入的MIME类型.我怎么能这样做?
我的方法是这样的:
function checkMIME(field, rules, i, options){
var file = $("#userfile")[0].files[0];
var MimeFilter = /^(image\/bmp|image\/gif|image\/jpeg|image\/png|image\/tiff)$/i;
if (! MimeFilter.test(file.type)) {
return options.allrules.validate2fields.alertText;
}
}
Run Code Online (Sandbox Code Playgroud)
Thanx Kashuda
我在.NET中使用validationengine所以不要在某些页面上使用传统的class ="validate [required]",因为我在页面上有一些逻辑表单,并且不希望一次性验证整个表单而是使用以下内容:
$j(document).ready(function () {
$j("#btnSave").click(function (e) {
if ($j("#lstCustomerType").val() == "") {
jQuery('#lstCustomerType').validationEngine('showPrompt', 'Please select a customer type', 'error', true);
});
});
Run Code Online (Sandbox Code Playgroud)
我遇到的唯一问题是showArrow参数似乎什么都不做.无论我尝试什么,箭头永远不会显示,我最终只在文本框上方弹出一个弹出窗口.在我使用class ="validate [required]"的页面上,箭头显示为预期.是否有人知道它是弹出窗口的手册或语法的限制,以使其工作?
我想使用JQuery Validation Engine插件来查看动态添加的隐藏输入字段.
提交表单时,必须至少有一个这样的字段.
它尝试使用groupRequired Validator实现此目的
http://posabsolute.github.com/jQuery-Validation-Engine/#validators/grouprequired
<link rel="stylesheet" href="css/validationEngine.jquery.css" type="text/css"/>
<script>
$(document).ready(function(){
$("#tagform").validationEngine();
});
</script>
<form id="tagform">
<input type="hidden" name="tags" id="tags-input" />
<input type="hidden" name="inc" value="locate">
<input type="hidden" class="validate[groupRequired[tagitem]]" name="validation">
<br><br>
<input type="submit" value="Save Tags">
</form>
Run Code Online (Sandbox Code Playgroud)
添加字段看起来像:
var formhtml ='<input type="hidden" name="tags[]" class="validate[groupRequired[tagitem]]" id="id'+itemid+'" parenttag="'+parent+'" value="'+itemid+'">';
$("#tagform").append(formhtml);
Run Code Online (Sandbox Code Playgroud)
目前它根本不检查隐藏的字段.
任何想法如何解决这个或另一种方法?
解决方法
使用简单的javaskript onSubmit函数来检查标记的出现
function checkForm(form)
{
var count = $('input[name="tags[]"]').length;
if(count == 0 ) {
alert("Select at least one tag");
return false;
}
alert ("Count " + count)
return true; …Run Code Online (Sandbox Code Playgroud)