我正在尝试根据单选按钮选择验证文件类型。如果用户点击“展示广告”。他/她只能上传图像文件,如果用户选择“视频”,他/她只能上传视频文件。此外,他们只能上传特定大小的文件,以后我可能会这样做。我现在面临的主要问题是我无法验证图像文件和视频文件。这是我的jsfiddle:http://jsfiddle.net/MZu3g/
以下是我的javascript示例代码。
$('.form_validation_reg3').validate({
onkeyup: false,
errorClass: 'error',
validClass: 'valid',
highlight: function (element) {
$(element).closest('div').addClass("f_error");
},
unhighlight: function (element) {
$(element).closest('div').removeClass("f_error");
},
errorPlacement: function (error, element) {
$(element).closest('div').append(error);
},
rules: {
'gender[]': {
required: '#adtarget_check:checked',
minlength: 1
},
'target_age[]': {
required: '#adtarget_check:checked',
minlength: 1
},
'target_time[]': {
required: '#adtarget_check:checked',
minlength: 1
},
'target_device[]': {
required: '#adtarget_check:checked',
minlength: 1
},
'target_location[]': {
required: '#adtarget_check:checked',
minlength: 1
},
'target_network[]': {
required: '#adtarget_check:checked',
minlength: 1
},
notebook: {
required: true,
minlength: 1,
accept: "jpg|jpeg|png|ico|bmp"
},
mobile: {
required: false,
minlength: 1,
accept: "jpg|jpeg|png|ico|bmp"
},
},
invalidHandler: function (form, validator) {
$.sticky("There are some errors or no Ads image were selected. Please correct them and submit again.", {
autoclose: 8000,
position: "top-right",
type: "st-error"
});
}
})
答案 0 :(得分:1)
由于您的小提琴不包含jquery.validate.js脚本,我不确定这是否是问题,或者问题是您忘记包含additional-methods.js,这是{ {1}}统治生命。如果您没有,那么您的accept
规则将永远不会有效,并且会抛出错误(您应该将错误包括在内!)。
所以要清楚,这就是你的脚本应该是这样的:
accept
请参阅此处的工作示例:http://jsfiddle.net/ryleyb/MZu3g/1/
答案 1 :(得分:1)
通过添加这些来找到解决方案..
var radio_value = null;
$("input[name='tabnote_radio']").change(function() {
radio_value = this.value;
if ( radio_value == "image") {
$('#notebook').rules('add', {
extension: "jpg|jpeg|png|gif"
});
} else if( radio_value == "video") {
$('#notebook').rules('add', {
extension: "flv|mov|mp4|wmv|ogv"
});
};
});