前端input 是这样的
<input id='dealer_shop_outdoor' name='dealer_shop_outdoor' type="file">
js 代码是这样的
$('#buttom').submit(function(){
dealer_shop_outdoor=$("#dealer_shop_outdoor").files[0];
}
也试过
$('#buttom').submit(function(){
dealer_shop_outdoor=$("#dealer_shop_outdoor").file[0];
}
Chrome显示
Cannot read property '0' of undefined
然后进一步报错
DOMException: Failed to execute 'querySelectorAll' on 'Element': '*,:x' is not a valid selector.
啥意思, file/files 需要定义么?我看网上都这么直接用了。。为啥我的会报错。。
你把jQuery元素,跟html的dom元素搞混了。
你看到的files[0] 这是js的写法,你要用js原生的dom对象获取。你可以直接执行我这个html就可以了。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("button").bind('click',function(){
var dealer_shop_outdoor=$("#dealer_shop_outdoor")[0].files[0];
alert(dealer_shop_outdoor);
});
});
</script>
</head>
<body>
<input id='dealer_shop_outdoor' name='dealer_shop_outdoor' type="file">
<button id="button" type="submit" >提交</button>
</body>
</html>
建议首先看看$("#dealer_shop_outdoor")对象是不是有值,也可以用debug去跟踪下返回什么?再去分析 下一步操作
<input id='dealer_shop_outdoor' name='dealer_shop_outdoor' type="file" onchange="updalodFile(this)">
<script>
function updalodFile(obj){
obj.files[0]
}
</script>
dealer_shop_outdoor=$("#dealer_shop_outdoor")[0].files
dealer_shop_outdoor = $("#dealer_shop_outdoor")[0].files[0];
files是Dom对象的属性,而$("#dealer_shop_outdoor") 返回的是jQuery对象。
jQuery对象设置/获取Dom对象的属性要用prop()方法。
dealer_shop_outdoor=$("#dealer_shop_outdoor").prop("files")[0];
或者把jQuery对象转化为Dom对象,再获取Dom对象的属性
dealer_shop_outdoor=$("#dealer_shop_outdoor")[0].files[0];
和
dealer_shop_outdoor=$("#dealer_shop_outdoor").get(0).files[0];
都可以
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title> 页面名称 </title>
</head>
<body>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
<input id='dealer_shop_outdoor' name='dealer_shop_outdoor' type="file">
<script type="text/javascript">
$("#dealer_shop_outdoor").change(function(event) {
var dealer_shop_outdoor1 = $("#dealer_shop_outdoor").prop("files")[0];
var dealer_shop_outdoor2 = $("#dealer_shop_outdoor")[0].files[0];
var dealer_shop_outdoor3 = $("#dealer_shop_outdoor").get(0).files[0];
console.log(dealer_shop_outdoor1);
console.log(dealer_shop_outdoor2);
console.log(dealer_shop_outdoor3);
});
</script>
</body>
</html>