我的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