..is not a function错误的可能状况:java
一、JS引入的路径不对。检查方法是看浏览器控制台是否将JS载入了进来。ajax
二、JS引入顺序不对。JS要在你使用以前引入json
三、Jquery没有第一个引入。浏览器
四、函数所在script标签,存在错误函数。服务器
五、函数名写错了。app
而后我发现按照网上不少人的写法,不管如何都会出这个错。 这种写法相似:jsp
function ajaxFileUpload(){ $.ajaxFileUpload( { url:'update.do?method=uploader', //须要连接到服务器地址 secureuri:false, fileElementId:'houseMaps', //文件选择框的id属性 dataType: 'xml', //服务器返回的格式,能够是json success: function (data, status) //至关于java中try语句块的用法 { }, error: function (data, status, e) //至关于java中catch语句块的用法 { } } ); }
最后我按照官方DEMO的格式写,就OK了函数
<form method="post" action="" enctype="multipart/form-data"> <label>File Input: <input type="file" name="file" id="demo1" /></label> </form>
$(document).ready(function() { var interval; function applyAjaxFileUpload(element) { $(element).AjaxFileUpload({ action: "MyJsp.jsp", onChange: function(filename) { // Create a span element to notify the user of an upload in progress var $span = $("<span />") .attr("class", $(this).attr("id")) .text("Uploading") .insertAfter($(this)); $(this).remove(); interval = window.setInterval(function() { var text = $span.text(); if (text.length < 13) { $span.text(text + "."); } else { $span.text("Uploading"); } }, 200); }, onSubmit: function(filename) { // Return false here to cancel the upload /*var $fileInput = $("<input />") .attr({ type: "file", name: $(this).attr("name"), id: $(this).attr("id") }); $("span." + $(this).attr("id")).replaceWith($fileInput); applyAjaxFileUpload($fileInput); return false;*/ // Return key-value pair to be sent along with the file return true; }, onComplete: function(filename, response) { window.clearInterval(interval); var $span = $("span." + $(this).attr("id")).text(filename + " "), $fileInput = $("<input />") .attr({ type: "file", name: $(this).attr("name"), id: $(this).attr("id") }); if (typeof(response.error) === "string") { $span.replaceWith($fileInput); applyAjaxFileUpload($fileInput); alert(response.error); return; } $("<a />") .attr("href", "#") .text("x") .bind("click", function(e) { $span.replaceWith($fileInput); applyAjaxFileUpload($fileInput); }) .appendTo($span); } }); } applyAjaxFileUpload("#demo1"); });