给定类型的所有输入的jQuery验证
jQuery Validation for all inputs of a given type
我正在尝试编写一个JavaScript函数,该函数将涵盖type="time"
的所有input
元素的验证。我正在查看jQueryValidate的文档,但我只找到验证绑定在id
或name
属性上的示例。有办法在全球范围内做到这一点吗?
我想确保时间总是采用hh:mm
格式。我找到了一个函数来验证我的时间(见下文)。当这个函数返回false
时,我会调用addError()
函数在表单中添加一个错误。我不知道该怎么做。
// Check is the input is a valid time
function formatTime(time) {
var result = false, m;
var re = /^'s*([01]?'d|2[0-3]):([0-5]'d)'s*$/;
if ((m = time.match(re))) {
result = (m[1].length == 2 ? "" : "0") + m[1] + ":" + m[2];
}
return result;
}
// Trigger the validation on the onBlur event
$("input[type=time]").blur(function () {
var value = formatTime($(this).val());
if (value == false) {
addError($(this));
}
});
伊迪丝1:看来我的复制/粘贴技术不是很好。在formatTime()
中,如果格式有效,则返回时间;如果格式无效,则返回false
。
报价OP:
"我正在查看jQuery Validate的文档,但我只是查找验证绑定在
id
或name
上的示例所有物有办法在全球范围内做到这一点吗?"
是的。也可以使用.rules('add')
方法应用规则,并且该方法可以附加到任何合法的jQuery选择器。要在多个元素上使用此方法,必须将其封装在jQuery .each()
方法中。(还要注意,即使您没有使用name
属性,每个input
也必须包含一个唯一的name
。)
$(document).ready(function() {
$('#myform').validate({ // initialize the plugin on your form
// any rules and/or options
});
$('input[type="time"]').each(function() {
$(this).rules('add', {
required: true,
// another rule, etc.
});
});
});
工作演示:http://jsfiddle.net/g8YFa/
有关使用此插件添加规则的完整信息,请参阅此答案。
您想要声明一个自定义验证方法来验证时间格式。
$.validator.addMethod('correctTimeFormat', function (value, element) {
var result = false, m, regex = /^'s*([01]?'d|2[0-3]):([0-5]'d)'s*$/;
if (m = value.match(regex)) {
result = (m[1].length === 2 ? '' : '0') + m[1] + ':' + m[2];
}
return result;
}, 'Invalid time format.');
然后,要求对所有输入时间字段使用该自定义验证方法。
$('input[type="time"]').validate({
rules: {
value: { correctTimeFormat: true }
}
});
// Check is the input is a valid time
function formatTime(time) {
var result = false, m;
var re = /^'s*([01]?'d|2[0-3]):([0-5]'d)'s*$/;
if ((m = time.match(re))) {
//Well it seems like its valid lets return true!
return true;
}else{
//Well it seems like this is invalid return false!
return false;
}
}
您必须从formatTime()函数返回值true/false。这样它就会设置在您的"var value=formatTime($(this).val());"声明上!
相关文章:
- 使用ajax的输入jquery意外结束
- 如何从输入 JQuery 或 javascript 中获取修改后的文本
- 从输入 jquery 获取值
- 如何将MP3文件播放到麦克风输入jQuery中
- 正在尝试预览表单输入jQuery
- 如何启用由日期选择器 ui 附加的输入?(JQuery 插件)
- 检测用户是否没有't输入任何内容/删除输入jQuery
- 删除输入jquery中的值时清除所有更改
- 在编辑输入 jQuery 后激活只读返回
- 验证并附加电话输入 Jquery
- 如果相同的单词在输入 jquery 或 js 中写入两次,则发出警报并不允许
- 如何附加用户输入?jQuery.
- 使用 .val() 的输入 jQuery 进行计算
- 对所有子输入JQuery使用replaceWith
- Vaildate动态添加数组输入-jQuery Validate
- 文件输入jQuery更改事件只触发一次
- 正确重命名克隆的输入JQuery
- 检查输入Jquery的起始字符的值
- 动态添加输入jquery
- 在鼠标输入jquery中使用延迟