我的FineUploader除了1個場景以外都很好用。在某些情況下,我的某個表單元素(如文本框或下拉列表)具有無效數據。我想在這種情況下防止上傳發生。不管怎樣,FineUploader會繞過我的表單驗證並提交,只要選擇了有效的圖像。這裏是我的表單標籤:防止在某些情況下提交表格
<form action="./fine-uploader/server/endpoint.php" id="qq-form" onsubmit="return checkForm(this)">
我checkForm()
函數正確返回真/假回到形式的onSubmit
。當它返回false時,通常會阻止表單提交,但只要FineUploader具有有效的圖像(由用戶選擇),即使在checkForm()返回false時,也會在所有情況下提交。
我已經嘗試過這樣的:
form: { interceptSubmit: false},
這樣的作品,但它有一個可怕的副作用:而不是提交表單異步,它重定向到我的PHP處理程序(我想這是做一個形式GET或POST)而不是做一個很好的異步提交。
我只需要一種方法來防止在我選擇的時候提交表單,並在需要時啓用表單提交。
這裏是我目前的設置:
<script>
var manualUploader = new qq.FineUploader({
element: document.getElementById('fine-uploader-manual-trigger'),
template: 'qq-template-manual-trigger',
request: {
endpoint: './fine-uploader/server/endpoint.php'
},
thumbnails: {
placeholders: {
waitingPath: './fine-uploader/placeholders/waiting-generic.png',
notAvailablePath: './fine-uploader/placeholders/not_available-generic.png'
}
},
validation: {
allowedExtensions: ['png', 'jpg', 'jpeg', 'gif'],
itemLimit: 1,
sizeLimit: 307200 // 300 kB = (300kb * 1024 bytes) = 307200
},
callbacks: {
onComplete: function(id, name, responseJSON) {
if (responseJSON.success === true) {
//location.href = "ManageAds.php";
location.href = "index.php";
} else {
console.log(responseJSON);
//history.go(0);
}
//console.log(responseJSON.success);
},
},
autoUpload: false,
debug: false,
multiple: false
});
qq(document.getElementById("trigger-upload")).attach("click", function() {
manualUploader.uploadStoredFiles();
});
</script>
如何防止表單提交,當我的驗證的一個失敗?如果你有一些優雅的內置於FineUploader中,那就太棒了。如果沒有,我會很高興與任何類型的黑客,我只需要得到這個工作。謝謝。
這不是一個明智的選擇,而且我也不會建議在您對應用程序沒有很強的理解的情況下修改第三方代碼。您聲稱Web API方法在罰款上傳器中引發錯誤並沒有多大意義。這可能是由於代碼中的問題。由於您沒有演示過您的代碼,因此無法進一步提供幫助。此外,您的建議涉及修改優良的Uploader代碼,但不真正瞭解此操作的後果。我強烈勸阻這一點。相反,要證明你正在解決的問題。 –
雷,你在這篇文章中所說的沒有任何幫助。你的建議不起作用,你對關於永遠不會做的事情的兩個僞善論斷都是愚蠢的。 Onsubmit一直存在,許多網站/開發人員使用它。如果這是「永遠」不應該做的事情,那麼瀏覽器製造商將會刪除它 - 但它們都沒有。另外,如果調整第三方代碼是唯一有效的工作,我會去做。你現在可以回到你的象牙塔了。 – HerrimanCoder