如何使用javascript删除带有必填字段的图像输入
我做了一个脚本,检查图像的宽度,如果宽度小于一定量,就删除图像 图像字段是必需的,在我删除它之后,它仍然通过了文件验证 样本:如何使用javascript删除带有必填字段的图像输入,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我做了一个脚本,检查图像的宽度,如果宽度小于一定量,就删除图像 图像字段是必需的,在我删除它之后,它仍然通过了文件验证 样本: Javascript var _URL = window.URL || window.webkitURL; $("#file").change(function (e) { var file, img; if ((file = this.files[0])) { img = new Image(); img.on
Javascript
var _URL = window.URL || window.webkitURL;
$("#file").change(function (e) {
var file, img;
if ((file = this.files[0])) {
img = new Image();
img.onload = function () {
if(this.width<490||this.height<175){
$("#file").val("").change();
}
};
img.onerror = function () {
alert("not a valid file: " + file.type);
};
img.src = _URL.createObjectURL(file);
}
});
var URL=window.URL | | window.webkitURL;
$(“#文件”).change(函数(e){
var文件,img;
如果((file=this.files[0])){
img=新图像();
img.onload=函数(){
如果(this.width您的条件语句正在设置file=this.files[0]
。请更改为=
编辑:
既然两位评论者都指出我错了,那就替换我吧
$(“#文件”).val(“”.change()
:
与
$("#file").replaceWith($("#file").clone());
试试这个
<form action="" id="form" method="post">
<input type="file" id="file" required accept='image/png, image/gif, image/jpeg, image/jpg'/>
//your button submit
<a href="#" id="submitForm">Submit</a>
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
//When click the button
$('#submitForm').click(function(){
var validation = true; //Var to validation true
if($('#file').val()){ //There's image?
if($('#file').width()<490 || $('#file').height()<175){
validation = false;
}
}else{
validation = false;
}
//Is true?
if(validation){
$('#form').submit();
}else{
alert("select a image");
}
});
</script>
//你的按钮提交
//单击按钮时
$(“#提交表单”)。单击(函数(){
var-validation=true;//var-to-validation-true
如果($('#file').val(){//有图像吗?
if($('#file').width()这不是作为比较,而是作为一个赋值。ifThis.files[0]
未定义,则整个if块未执行–如果未执行,则文件
中有一个可在内部使用的值。抱歉,这不是我想要的答案。代码正在工作,只是我们删除图像后的验证部分。我设置了图像字段是必需的,在删除图像后,它仍然通过了验证文件验证。我用不同的解决方案编辑了我的答案,因为我误解了你的条件语句。谢谢。这个答案有效,但只是第一次。你第二次上传同一张图片时,它通过了验证,即change()
方法在您第一次输入时不会重新初始化,因此更改()
code没有被第二次调用。很抱歉,这不是我想要的答案。我将图像字段设置为必填字段,并且在删除图像后,它仍然通过了文件验证。抱歉,但我不明白您的意思,请您详细说明您的问题。图像是必填字段。当您单击“提交”而不上载im时年龄,您无法继续,因为它将要求图像。但在您上载宽度小于400px的图像后,该文件将被删除,但您可以不上载图像继续。
<form action="" id="form" method="post">
<input type="file" id="file" required accept='image/png, image/gif, image/jpeg, image/jpg'/>
//your button submit
<a href="#" id="submitForm">Submit</a>
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
//When click the button
$('#submitForm').click(function(){
var validation = true; //Var to validation true
if($('#file').val()){ //There's image?
if($('#file').width()<490 || $('#file').height()<175){
validation = false;
}
}else{
validation = false;
}
//Is true?
if(validation){
$('#form').submit();
}else{
alert("select a image");
}
});
</script>