我在这里尝试验证数组中的时间。使用jquery验证插件并在错误时传递bootstrap的popover()函数。但它显示错误。
Cannot read property 'settings' of undefined
这是我的代码。我想验证触发模糊事件的时间......
$("input").blur(function() {
var check = $(this).closest('tr').find('input');
$.validator.addMethod(check, function(value, element) {
return this.optional(element) || /^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$/i.test(value);
}, "please enter the valid time");
$(this).validate({
rules: {
'checkin[]': {
required: true
},
'checkout[]': {
rules: {
required: true
}
}
},
showErrors: function(errorMap, errorList) {
$.each(errorList, function(index, value) {
value.popover({
html: true,
trigger: 'blur',
content: function() {
return 'Empty Textbox';
}
});
});
$.each(this.successList, function(index, value) {
$(value).popover('hide');
var form_data = $(this).closest('tr').find('input').serialize();
$.ajax(
{
url: "<?php echo site_url("HomeController/calculate_time_lap"); ?>",
type: 'POST',
data: form_data,
success: function(result)
{
alert(result);
// $('input').closest('tr').find('.TextBox3').val(result);
}
});
return false;
});
}
});
});
答案 0 :(得分:0)
经过一段时间的努力终于找到了解决问题的方法......我们可以使用匹配函数以及jQuery验证插件的时间模式。
$("input").blur(function() {
if (!(this.value.match(/^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$/i))) {
$(this).popover({
html: true,
trigger: 'blur',
content: function() {
return 'Invalid Time';
}
});
return false;
}
else {
var form_data = $(this).closest('tr').find('input').serialize();
}
$.ajax(
{
url: "<?php echo site_url("HomeController/calculate_time_lap"); ?>",
type: 'POST',
data: form_data,
success: function(result)
{
// alert(result);
$('input').closest('tr').find('.TextBox3').val(result);
}
});
return false;
});