【发布时间】:2013-07-11 11:00:46
【问题描述】:
我正在将动态 html 内容添加到另一个 html 内容中。这基本上是一个编辑表单 html 视图,但是当我尝试验证 from 时,它给了我“TypeError: jQuery(...).validate is not a function”错误。我正在使用 jQuery 1.6.2 版本。
function validate_edit_venue() {
jQuery('#venue_edit_form').validate({
rules: {
venueName: {
required: true,
minlength: 1,
maxlength: 50
},
venueDescription: {
required: false,
lettersonly: true,
maxlength: 150
},
venueType: {
required: true
}
},
messages: {
venueName: {
required: "Venue name is required",
minlength: "Minimum 1 character required",
maxlength: "Should not exceed 50 characters"
},
venueDescription: {
maxlength: "Should not exceed 150 characters"
},
venueType: {
required: "Please select a venue type"
}
}
});
}
这是我的 jQuery 验证。我在 jQuery 编辑表单脚本中调用此函数。谁能帮我解决这个问题?这个问题可能是重复的,但大多数是由于jQuery版本问题,所以我无法通过它们获得正确的答案。
jQuery('#venue_edit_save').live('click', function(){
validate_edit_venue();
if(jQuery("#venue_edit_form").valid())
{
var directory_id = jQuery(this).attr('directory_id');
var venue_type = jQuery(this).attr('venue_type');
var venueName = jQuery('#venue_name').val();
var venueDescription = jQuery('#description').val();
var venueType = jQuery('#venue_types option:selected').val();
var venueImage = jQuery('[name="profile_image'+directory_id+'"]').val();
jQuery.blockUI();
jQuery.ajax({
type: 'POST',
cache: false,
dataType: 'json',
url: baseurl+'catalog/catalog/action/venues/edit_venue',
data:{'directory_id':directory_id,'venueName':venueName,'venueDescription':venueDescription,'venueType':venueType,'venueImage':venueImage},
success: function(data)
{
if(data.status == 'success')
{
/*if(venue_type == venueType)
{
jQuery('#Venue_'+directory_id).replaceWith(data.html);
}
else
{
location.reload();
}*/
jQuery('#Venue_'+directory_id).replaceWith(data.html);
show_messages(data.status,data.msg);
setTimeout(jQuery.unblockUI);
jQuery('#edit-dining-venue-block').hide();
location.reload();
}
else if(data.status == 401)
{
redirect_login_timed_out();
}
/*else
{
show_messages(data.status,data.msg);
setTimeout(jQuery.unblockUI);
jQuery('#edit-dining-venue-block').hide();
}*/
},
error:function (jqXHR)
{
if(jqXHR.status == 401)
{
redirect_login_timed_out();
}
setTimeout(jQuery.unblockUI);
}
});
}
});
// Hiding the edit venue view when clicking the cancel button
jQuery('#venue_edit_cancel').live('click', function(){
jQuery('#edit-dining-venue-block').hide();
});
});
这是发生错误的地方。此 jQuery 保存编辑后的信息:验证时。
谢谢。
【问题讨论】:
-
jQuery .validation 是一个插件,除了 jQuery “普通”库文件之外,你还有 .js 文件吗?
-
是的。我已经添加了所有需要的插件,包括验证插件。
-
确保 jQuery-validation 与您使用的 jQuery 版本兼容。
-
请向我们展示您是如何包含脚本的。
-
是的。验证插件与我使用的 jQuery 版本兼容。实际上,此错误仅发生在此动态 html 内容中。在其他地方,不会发生此错误,并且表单已正确验证。例如:在“添加”表单中,验证正常工作,但在编辑表单中,它不起作用,而是给出上述错误。编辑表单是一个动态的html内容。
标签: javascript jquery jquery-validate