javascript - jQuery PreventDefault 并返回 false 不起作用

标签 javascript jquery

我正在尝试实现图像预览。它工作得很好,直到我遇到一个问题,我需要防止输入文件不改变。

JSFIDDLE

当尝试更改图像时,效果很好。更改为图像后,尝试将输入文件更改为 txt 文件。它警告正确的错误,但输入文件也被更改。

$('body').on('change','.input-preview',function(e){
    var ito = $(this);
    var img = ito[0].files;
    var errs = [];
    for(x=0;x<img.length;x++){
        if(img[x].type!=='image/jpeg' && img[x].type!=='image/gif' && img[x].type!=='image/png'){
            errs.push('Not image.');
            break;
        }
        if(img[x].size>(1024000 * 5)){ 
            errs.push('File is too big.');
            break;
        }
    }
    if(errs.length){
        e.preventDefault();
        alert(errs[0]);
        return false;
    }else{
      previewIt(this, $('.preview-profile'));
    }
  });

最佳答案

change 事件不可取消。请参阅 MDN 上的文档.

关于javascript - jQuery PreventDefault 并返回 false 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33884606/

相关文章:

javascript - 如何强制 Instagram 在 Safari 而不是应用程序浏览器中打开链接

javascript - 使用 Unicode 印地文字体时文本被 chop

javascript - 在<body onload>上添加多个功能

javascript - jQuery图像调整大小出现在整个屏幕上

javascript - 用 iframe 替换 html 内容中的 youtube 链接?

javascript - 为什么 Twitter 的 typeahead.js 不能与我的 JSON 配合使用?

javascript - 检查数组元素的第一个字符

javascript - 添加和删​​除隐藏字段数组中的值

javascript - setFromObject(mesh) 有时会返回错误的值

javascript - Jquery - 如何将来自输入的属性名称的文本添加到标签 attr 和该输入 ID?