我正在按照代码进行运行即。(我正在使用IE10(
添加了整个活动处理程序:
$('#image-select').change(function (e) {
event.preventDefault ? event.preventDefault() : (event.returnValue = false);
HideImageValMsg();
var imageFiles = (apQuery('#image-select'))[0].files;
var file = imageFiles[0];
var filename = file.name;
var imageArr = ["gif", "jpg", "png", "jpeg", "bmp", "tif", "tiff"];
if (imageArr.indexOf(filename.substring(filename.lastIndexOf('.') + 1).toLowerCase()) == -1) {
$('#divInvalidImage').removeClass("apUI-hidden");
$('#image-name').text('');
$('#image-select').val('');
return;
}
var fileNameWtoext = filename.substr(0, filename.lastIndexOf('.')) || filename;
if (fileNameWtoext.startsWith('.') || fileNameWtoext.endsWith('.') || /[%&*"'?#<>:{}(),./|~\]+/gi.test(fileNameWtoext) || file.size == 0) {
$('#divInvalidImageNm').removeClass("apUI-hidden");
$('#image-name').text('');
$('#image-select').val('');
return;
}
if (fileNameWtoext.length > 100) {
$('#divFileLength').removeClass("apUI-hidden");
$('#image-name').text('');
$('#image-select').val('');
return;
}
$('#image-name').text(imageFiles[0].name);
});
此代码有其他选择或问题吗?
您正在调用输入#图像选择的更改事件,并且您正在更改函数内的值,因此,执行后,返回它再次返回它,将其内部变为" INCER"更改事件处理程序,用于您的值正在设置,
$('#image-select').val('');
因此,您可以尝试以下代码,在更改事件处理程序的开头,您可以检查输入的值,然后再次从那里返回false,
$('#image-select').change(function (e) {
if ($('#image-select').val() == "") {
return false;
}
//Add your code here...
});
在这里无需添加以下行以防止回调,
event.preventDefault ? event.preventDefault() : (event.returnValue = false);
让我知道您是否面临任何问题。