2016-10-11 27 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的答案中的評論 –

相關問題