2016-10-11 26 views
-6

我想上传笨用ajax的图像遗漏的类型错误: “uploadform” .submit不是一个函数

我的html代码:

<form action=<?php echo site_url('users/postphoto'); ?> role="form" method="post" id="uploadform" name="uploadform"> 
    <input type="file" name="photo" id="photo"> 
    <button type="submit" class="btn green">Save</button> 
</form> 

我的js代码:

<script type="text/javascript"> 
    ("uploadform").submit(function(evt){ 
     evt.preventDefault(); 
     var url = $(this).attr('action'); 
     var formData = new FormData(); 
     formData.append('photo', $('photo')[0].files[0]); 
      $.ajax({ 
       url: url, 
       type: 'POST', 
       data: formData, 
       processData: false, 
       contentType: false, 
       success: function (res) { 
        console.log(res); 
       }, 
       error: function (error) { 
       console.log(error); 
      } 
     }); // End: $.ajax()   
    }); // End: submit() 
</script> 

我通过这个网站搜索了类似的问题,但其中大多数人说确保没有名为“提交”的元素。 但是,如您所见,没有名为“submit”的元素。 我得到一个错误:

"Uncaught TypeError: submit is not a function."

请给一些建议。提前致谢。

+0

使用'$(“#uploadform”)'。 –

回答

5

您只需在代码上缺少$,并使用元素ID匹配#符号。

$("#uploadform").submit(... 
^^

另外,不要忘了把jQuery插件:

<script src="uri/of/jquery"> </script> 
+0

不起作用。如果我更正了我的代码,那么我得到一个额外的错误:“设置:778 Uncaught ReferenceError:$未定义” – highfirst

+0

您确定吗?什么是额外的错误? –

+0

@highfirst:你需要包含jQuery Libarary。最新版本。 – devpro

1

你的jQuery选择的形式是不正确的。

而不是("uploadform")你应该使用$("#uploadform")来通过id来定位表单。

+0

'不行。如果我纠正我的代码,然后我得到一个额外的错误:“设置:778 Uncaught ReferenceError:$未定义” - highfirst 1分钟前这是@RaxWeber的答案中的评论 –

相关问题