关键词:
【中文标题】jQuery Validate Plugin - 如何创建一个简单的自定义规则?【英文标题】:jQuery Validate Plugin - How to create a simple custom rule? 【发布时间】:2010-09-19 11:04:07 【问题描述】:如何使用不使用正则表达式的 jQuery Validate 插件(使用 addMethod
)创建简单的自定义规则?
例如,什么函数会创建一个规则,仅当一组复选框中的至少一个被选中时才进行验证?
【问题讨论】:
95 票,我想这意味着bassistance.de/jquery-plugins/jquery-plugin-validation 文档可能不清楚:P 不知道您是否还在搜索(4 年后),但这可能会有所帮助 learn.jquery.com/plugins/… 【参考方案1】:您可以通过执行以下操作来创建一个简单的规则:
jQuery.validator.addMethod("greaterThanZero", function(value, element)
return this.optional(element) || (parseFloat(value) > 0);
, "* Amount must be greater than zero");
然后像这样应用它:
$('validatorElement').validate(
rules :
amount : greaterThanZero : true
);
只需更改“addMethod”的内容即可验证您的复选框。
【讨论】:
this.optional(element) 是什么 ||做那个功能?似乎每个规则都有,但我不知道为什么它会与除“必需”之外的任何规则相关。 省略它意味着该方法将始终被应用,即使该元素不是必需的。 如果元素为空,我认为 this.optional(element) 返回 true? 要运行,“数量”应该是页面中某些元素的id和名称? 是的,数量是指一些输入表单字段的名称属性。【参考方案2】:$(document).ready(function()
var response;
$.validator.addMethod(
"uniqueUserName",
function(value, element)
$.ajax(
type: "POST",
url: "http://"+location.host+"/checkUser.php",
data: "checkUsername="+value,
dataType:"html",
success: function(msg)
//If username exists, set response to true
response = ( msg == 'true' ) ? true : false;
);
return response;
,
"Username is Already Taken"
);
$("#regFormPart1").validate(
username:
required: true,
minlength: 8,
uniqueUserName: true
,
messages:
username:
required: "Username is required",
minlength: "Username must be at least 8 characters",
uniqueUserName: "This Username is taken already"
);
);
【讨论】:
我试过这个方法,效果很好,但是,男人返回的任何其他味精都不是真的,它仍然不能验证“好的”它卡在“用户名已被使用”中,有什么问题吗?我还检查了它是否通过回显值而不是返回 false 和 true 来正确返回,这是有效的。在我看来,我的浏览器没有接收返回 false ,返回 true ?这让我发疯了.. 通过在 addmethod 之前插入一个名为 result 的变量使其工作,似乎 true、false 值在成功函数中正确注册 小心这个。这不是功能齐全的代码,因为 AJAX“成功”将在“返回响应”之后返回;运行,导致意外行为 @Malachi 是正确的。这可以通过执行同步调用来解决,但这很讨厌。我想知道是否有其他方法可以实现这一目标?正如其他人所建议的那样,有remote
,但据我所知,它只允许进行一次验证,因此如果您需要进行两次异步验证或根据响应有多个错误消息,它将不起作用。
jquery validate 有一个远程方法:jqueryvalidation.org/remote-method【参考方案3】:
// add a method. calls one built-in method, too.
jQuery.validator.addMethod("optdate", function(value, element)
return jQuery.validator.methods['date'].call(
this,value,element
)||value==("0000/00/00");
, "Please enter a valid date."
);
// connect it to a css class
jQuery.validator.addClassRules(
optdate : optdate : true
);
【讨论】:
addClassRules 是对答案的一个很好的补充。【参考方案4】:自定义规则和数据属性
您可以使用data
属性使用语法data-rule-rulename="true";
来创建自定义规则并将其附加到元素
所以要检查一组复选框中是否至少有一个被选中:
data-rule-oneormorechecked
<input type="checkbox" name="colours[]" value="red" data-rule-oneormorechecked="true" />
添加方法
$.validator.addMethod("oneormorechecked", function(value, element)
return $('input[name="' + element.name + '"]:checked').length > 0;
, "Atleast 1 must be selected");
您还可以使用语法data-msg-rulename="my new message"
覆盖规则的消息(即:必须选择至少1 个)。
注意
如果您使用data-rule-rulename
方法,则需要确保规则名称全部为小写。这是因为 jQuery 验证函数 dataRules
应用 .toLowerCase()
进行比较,而 HTML5 规范不允许大写。
工作示例
$.validator.addMethod("oneormorechecked", function(value, element)
return $('input[name="' + element.name + '"]:checked').length > 0;
, "Atleast 1 must be selected");
$('.validate').validate();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.min.js"></script>
<form class="validate">
red<input type="checkbox" name="colours[]" value="red" data-rule-oneormorechecked="true" data-msg-oneormorechecked="Check one or more!" /><br/>
blue<input type="checkbox" name="colours[]" value="blue" /><br/>
green<input type="checkbox" name="colours[]" value="green" /><br/>
<input type="submit" value="submit"/>
</form>
【讨论】:
仅适用于 jquery.validate ver >= 1.10 我一生都无法在官方文档中找到这一点,我希望他们能更清楚地说明这一点。谢谢!【参考方案5】:谢谢,成功了!
这是最终代码:
$.validator.addMethod("greaterThanZero", function(value, element)
var the_list_array = $("#some_form .super_item:checked");
return the_list_array.length > 0;
, "* Please check at least one check box");
【讨论】:
【参考方案6】:您可以像这样添加自定义规则:
$.validator.addMethod(
'booleanRequired',
function (value, element, requiredValue)
return value === requiredValue;
,
'Please check your input.'
);
并将其添加为这样的规则:
PhoneToggle:
booleanRequired: 'on'
【讨论】:
【参考方案7】:对于这种情况:用户注册表单,用户必须选择未使用的用户名。
这意味着我们必须创建一个自定义的验证规则,它将向远程服务器发送异步 http 请求。
-
在您的 html 中创建一个输入元素:
<input name="user_name" type="text" >
-
声明你的表单验证规则:
$("form").validate(
rules:
'user_name':
// here jquery validate will start a GET request, to
// /interface/users/is_username_valid?user_name=<input_value>
// the response should be "raw text", with content "true" or "false" only
remote: '/interface/users/is_username_valid'
,
,
-
远程代码应该是这样的:
class Interface::UsersController < ActionController::Base
def is_username_valid
render :text => !User.exists?(:user_name => params[:user_name])
end
end
【讨论】:
【参考方案8】:第 1 步包括 cdn like
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
第 2 步类似代码
$(document).ready(function()
$("#submit").click(function ()
$('#myform').validate( // initialize the plugin
rules:
id:
required: true,
email: true
,
password:
required: true,
minlength: 1
,
messages:
id:
required: "Enter Email Id"
,
password:
required: "Enter Email Password"
,
submitHandler: function (form) // for demo
alert('valid form submitted'); // for demo
return false; // for demo
);
):
);
【讨论】:
在不提交表单的情况下调用 JQuery Validate Plugin
】在不提交表单的情况下调用JQueryValidatePlugin【英文标题】:CallJQueryValidatePluginwithoutsubmittingtheform【发布时间】:2013-05-1911:46:59【问题描述】:是否可以在不使用JQuery验证插件提交的情况下验证表单?我使用button.click函数进行验... 查看详情
jQuery Validate Plugin - 如何创建一个简单的自定义规则?
】jQueryValidatePlugin-如何创建一个简单的自定义规则?【英文标题】:jQueryValidatePlugin-Howtocreateasimplecustomrule?【发布时间】:2010-09-1911:04:07【问题描述】:如何使用不使用正则表达式的jQueryValidate插件(使用addMethod)创建简单的自... 查看详情
JQuery-Validate Plugin:添加规则以输入“文件”时,我的表单被提交
】JQuery-ValidatePlugin:添加规则以输入“文件”时,我的表单被提交【英文标题】:JQuery-ValidatePlugin:Myformgetssubmittedwhenaddingrulestoinput"file"【发布时间】:2018-01-3012:58:13【问题描述】:我是前端验证的新手,所以我希望在这... 查看详情
jquery的validate插件
http://www.runoob.com/jquery/jquery-plugin-validate.html 项目中的::$(function(){$(‘#createDepartment‘).validator({//jsvalidator框架rules:{remote:function(element){//远程异步加载return$.ajax({url:/*[[@{/porta 查看详情
jquery插件-validate
下载地址官网下载地址:http://jqueryvalidation.org/files/jquery-validation-1.15.0.zip帮助文档位置:http://jqueryvalidation.org/documentation/菜鸟网地址:http://www.runoob.com/jquery/jquery-plugin-validate.html 【使用步骤】导入jq 查看详情
验证插件——jquery.validate.js
...load/s592652578/9457421教程:http://www.runoob.com/jquery/jquery-plugin-validate.html 插件问题:1.对<inputtype="file">文件上传按钮作用不大,无法验证文件类型,文件选中后无法验证,需要移除焦点才能验证【解决办法】 查看详情
jquery表单验证插件——jquery.validate.js
官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一、导入js库1<scriptsrc="../js/jquery.js"type="text/javascript"></script>2<scriptsrc="../js/jquery.validate.js"type="t 查看详情
jquery.validate.js表单验证
官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/API:http://jquery.bassistance.de/api-browser/plugins.html默认校验规则(1)required:true必输字段(2)remote:"check.php"使用ajax方法调用check.php验证输入值(3)em 查看详情
jquery验证控件jquery.validate.js的使用介绍
官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validationjQueryplugin:Validation使用说明 转载自:http://blog.sina.com.cn/s/blog_608475eb0100h3h1.html 一导入js库<scriptsrc="../js/jquery 查看详情
jquery验证控件jquery.validate.js使用说明+中文api
http://www.cnblogs.com/linjiqin/p/3431835.htmlhttp://blog.csdn.net/lhzjj/article/details/17378435jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 查看详情
jquery.validate.js实现前端表单验证
参考技术Ajquery.validate.js表单验证官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/API:http://jquery.bassistance.de/api-browser/plugins.html当前版本:1.5.5需要JQuery版本:1.2.6+,兼容1.3.2<scriptsrc="../js/jquery.js"type="text/javascript"></sc... 查看详情
在没有验证插件的情况下使用 jQuery 验证 url?
...用jQuery验证url?【英文标题】:ValidatingurlwithjQuerywithoutthevalidate-plugin?【发布时间】:2011-02-1223:13:42【问题描述】:我需要使用jQuery验证variable中的url,但不能使用validate-plugin。有没有简单的方法来做到这一点?【问题讨论】:【... 查看详情
jquery笔记——插件
验证插件验证插件(validate.js),是一款验证常规表单数据合法性的插件。使用它,极大的解放了在表单上繁杂的验证过程,并且错误提示显示的完善也增加了用户体验插件都可以在JQueryUI的plugin页面下载,也可以去其官网下载... 查看详情
jquery整理
$.extend扩展Jquery的bin绑定事件,unbind取消所有事件Jquery学习地址:http://www.runoob.com/jquery/jquery-plugin-validate.htmlJquery学习地址:http://www.haorooms.com/post/jquery_selecter_zj使用ajax的jsonP跨域请求数据,需要在服务器对数据进行处理ajax跨域 查看详情
jquery.validate表单动态验证
jQuery.validate表单动态验证实际上jQuery.validate提供了动态校验的方法。而动态拼JSON串的方式是不支持动态校验的。牺牲jQuery.validate的性能优化可以实现(jQuery.validate的性能优化见图1.2jQuery.validate源码)。也可 查看详情
jquery.validate使用攻略(表单校验)
目录jquery.validate使用攻略1第一章 jquery.validate使用攻略1第二章 jQuery.validate.jsAPI7Customselectors7Utilities8Validator8Listofbuilt-inValidationmethods9validate()的可选项11debug:进行调试模式11第三章 自定义jquery-v 查看详情
jquery.validate使用
JQueryValidate使用总结:一、导入js库<scriptsrc="../js/jquery.js"type="text/javascript"></script><scriptsrc="../js/jquery.validate.js"type="text/javascript"></script>如果也导入jquery.validate. 查看详情
jquery.validate:多个远程规则
】jquery.validate:多个远程规则【英文标题】:jquery.validate:MultipleRemoteRules【发布时间】:2012-10-2808:30:32【问题描述】:我计划使用两个远程规则验证单个文本字段。更像这样。$(\'#form\').validate(rules:remote:\'url1.php\',remote:\'url2.php\',me... 查看详情