- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 filepicker.io作为我网站的更大表单的一部分。我实际上并没有将文件存储在表单中,而是将 URI 的一部分存储在隐藏的输入字段中,以及用户在表单中填写的其他信息。我知道用于选择文件并存储它们的脚本有效,这不是问题所在。当我单击提示文件选择器窗口的按钮时,我收到以下警告提示:
Are you sure you want to leave this page Filepicker 上传未完成。
以及离开或留在页面上的选项。如果我点击离开,即使表格没有完全填写,我也会被带到表格操作。如果我留下来填写表格的其余部分,然后在最后提交,什么也不会发生。
我想在不提交的情况下完成表单的文件选择器部分,然后通过单击结束。
有什么想法吗?
下面是表格和运行文件选择器的脚本。
表单
<form action="/admin/upload" method='post'>
<h2>Add media:</h2>
<p><button onclick="pickFile();" >Upload a File:</button><span id="uploadMessage"></span>
<input id="URI" type="hidden" name="URI"></p>
<input id="filename" type="hidden" name="filename">
<p><b>note:</b>Files must be either of the .jpg, .jpeg, .png, or .gif format.</p>
<p>Location: <label><input type="radio" name="location" value="1">All</label>
<label><input type="radio" name="location" value="2">Here</label>
<label><input type="radio" name="location" value="3">There</label>
<label><input type="radio" name="location" value="4">Anywhere</label>
</p>
<p>Expiration: <label><input type="datetime" name="dT"></label>
<p><input type="submit" value="Go"></p>
</form>
脚本
filepicker.setKey("key");
function pickFile() {
var info = filepicker.pick({
extensions: ['.jpg', '.jpeg', '.png', '.gif'],
container: 'window',
services:['COMPUTER', 'FACEBOOK', 'GMAIL', 'DROPBOX'],
},
function(InkBlob){
console.log(InkBlob.url);
$('#uploadMessage').html('<b>Successfully uploaded!</b>');
return [InkBlob.url, InkBlob.filename];
},
function(FPError){
console.log(FPError.toString());
});
console.log(info[0]);
var uri=info[0].substr(info[0].indexOf("file/"));
console.log(uri);
document.getElementById('URI').value=uri;
document.getElementById('filename').value=info[1];
};
最佳答案
Mess 在这里导致 onclick="pickFile() 事件,由于某种原因调用您的表单提交。您可以使用
event.preventDefault();
这些行:
var uri=info[0].substr(info[0].indexOf("file/"));
console.log(uri);
document.getElementById('URI').value=uri;
document.getElementById('filename').value=info[1];
应该放在 onSuccess filepicker 函数中。所以只有上传成功才会被调用。更好的主意是在这里使用 jquery:
var url = InkBlob.url;
$('input[name="URI"]').val(url);
这段代码应该能更好地工作:
filepicker.setKey("key");
$('#filepicker_button').click( function(event) {
event.preventDefault();
filepicker.pick(
{
extensions: ['.jpg', '.jpeg', '.png', '.gif'],
container: 'window',
services:['COMPUTER', 'FACEBOOK', 'GMAIL', 'DROPBOX'],
},
function(InkBlob){
console.log(InkBlob);
var url = InkBlob.url;
$('input[name="URI"]').val(url);
var filename = InkBlob.filename;
$('input[name="filename"]').val(filename);
$('#uploadMessage').html('<b>Successfully uploaded!</b>');
},
function(FPError){
console.log(FPError.toString());
});
});
并在 html 中添加按钮 id:
<form action="/admin/upload" method='post'>
<h2>Add media:</h2>
<p><button id="filepicker_button">Upload a File:</button><span id="uploadMessage"></span>
<input id="URI" type="hidden" name="URI"></p>
<input id="filename" type="hidden" name="filename">
<p><b>note:</b>Files must be either of the .jpg, .jpeg, .png, or .gif format.</p>
<p>Location: <label><input type="radio" name="location" value="1">All</label>
<label><input type="radio" name="location" value="2">Here</label>
<label><input type="radio" name="location" value="3">There</label>
<label><input type="radio" name="location" value="4">Anywhere</label>
</p>
<p>Expiration: <label><input type="datetime" name="dT"></label>
<p><input type="submit" value="Go"></p>
在这种情况下,您还可以应用 filepicker html 小部件。看一看: https://developers.inkfilepicker.com/docs/web/#widgets-pick
关于javascript - filepicker.io 过早提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24522313/
有没有办法指定默认拖放 Pane 的大小: 理想情况下,我想要更大的 Javascript 拖放 Pane ,带有一个用于手动上传的按钮。 最佳答案 使用 data-fp-drag-class属性(
如何使用 filepicker.io 一次选择多个文件?我一次只能找到选择一个文件的示例。 最佳答案 有两种方法可以做到。 如果您正在使用小部件,则设置 data-fp-option-multiple
Filepicker.io 似乎总是返回带有 Content-Disposition: attachment; 的文件; .. 导致它下载或抛出另存为对话框。 没有这个文件头我怎么能得到文件呢?我希望
我正在使用 filepicker.makeDropPane 来尝试一些简单的上传。我在 filepicker.io 的 web documentation 的文档中找不到一件事是一种取消正在进行的上传
我们正在使用带有 S3 存储的 pickAndStore API,但不希望将额外的唯一 key 添加到文件名中。有什么办法可以关掉这个功能吗?如果没有,是否可以在 api 选项中添加一些内容?这给我们
上传到 Amazon S3 时,如何让 Filepicker 设置适当的权限,以便文件在我的 s3 存储桶中是“公开的”? 最佳答案 您可以通过将 s3 存储桶变成静态网站来实现此目的。 使用 Ama
我使用 Rails 3.2、turbolinks 和 Filepicker.io 开发了一个网络应用 我像这样加载 API key (coffeescript)。我认为 $(document).rea
在 iOS 上上传图片时,我们会在上传结束时遇到内存峰值,并且在上传相机拍摄的照片时会收到内存警告(在 iPhone 5 和模拟器上遇到过)。另外,上传需要很长时间。对于我们的应用,我们真的不需要用户
我一直在使用 javascript 库 filepicker.io 将文件上传到 amazon s3 并且实现正常,我现在面临的问题是当用户上传带有空格或花哨字符的文件时,这些文件无法访问通过 htt
我可以将文件上传到 S3 存储桶中的特定文件夹,而不是只上传到存储桶的基本文件夹吗? 最佳答案 是的,在 filepicker.store 调用中使用“路径”参数。 filepicker.store(
我想知道Filepicker.io是否有能力限制用户可以选择/上传的文件数量?浏览docs时,我只能找到maxSize,它会限制单个文件的大小。目前有可能吗?如果没有,将来有什么计划支持这一点?谢谢。
我想知道是否可以禁用 Filepicker.io 中的 Flash 回退功能?如果您碰巧在浏览器中运行 Flash 阻止程序,则当文件选择器的模式出现时,您会看到一个难看的 Flash 图标。如果可以
我们目前正在与 Filepicker.io 合作,让用户能够上传图片和视频。看起来,如果我们在 Javascript API 选项中指定图像转换,视频上传不会处理,而是卡在 99.30% 处。如果我删
我正在使用 ‘
我希望能够为通过 FilePicker 上传对话框上传的图像设置最小宽度和高度(最小尺寸:1200 x 960 像素)。 理想情况下会有一个选项,但我似乎找不到它。 最佳答案 虽然我们没有根据图像尺寸
在使用网络应用程序时,如果用户在文件选择器处于模式内部时恰好点击了文件选择器框的外侧,则表示用户将丢失所有正在发生的上传。 我想知道是否有办法防止这种情况发生。例如禁用点击模态背景时关闭文件选择器和模
在 Window 7 上使用 Firefox v73 出现以下问题: 在我的代码中,我在 html 中使用了一个多文件选择器来并行上传多达 100 个文件: 这些文件将被发送到 REST-API,然
我有一个网站,btstats.com ,提供以下服务: “它从‘Bluescan 4.0 Scanner for Android’导入 JSON 文件并生成图表和统计数据”。 我在我的网站上实现了 D
使用 filepicker.io 上传文件时,会在文件实际可用之前调用 filepicker.pick 成功回调。这是代码: filepicker.pick({
我正在使用 filepicker.io作为我网站的更大表单的一部分。我实际上并没有将文件存储在表单中,而是将 URI 的一部分存储在隐藏的输入字段中,以及用户在表单中填写的其他信息。我知道用于选择文件
我是一名优秀的程序员,十分优秀!