javascript - DropZone JS 没有从 jQuery ID 调用的输入字段中获取外部值
问题描述
我遇到了 DropZone JS 抓取input
值并将其传递给上传脚本的问题。上传工作正常,除了这个字段没有发送到POST
.
我有一个非常基本的 DZ 配置:
$("#file_uploader").dropzone({
url: '/ajax/upload.php',
dictDefaultMessage: 'Drop photos or click here to upload',
maxFilesize: 400000,
params: {'project': $('#project-name').val()}, // This is the part I am having issues with
success: function (file, response) {
var obj = JSON.parse(response);
if (obj.status === 'success') {
console.log('gtg');
} else {
alert('upload failed');
$(".dz-preview").remove();
}
}
});
我有一个字段html
,看起来像:
<input type="text" id="project-name" required="required"
class="form-control col-md-6 col-xs-12 limited_form"
placeholder="Project Name">
如果我只是覆盖'project': $('#project-name').val()
看起来像:
'project': 'test'
有用。因此,由于某种原因,Dropzone 无法“看到”该输入字段是一个问题。
我认为这可能是 id 中的破折号project-name
- 但根据 HTML5 中的规则,Ids 中允许使用破折号。
控制台中没有错误,这是:
// Testing if Selector is working
$(document).on('keyup', '#project-name', function () {
console.log( $('#project-name').val() );
});
在我键入内容时正确显示project-name
控制台中的内容,所以我知道我的选择器没问题。因此,我对为什么 DropZone 没有“看到”它感到困惑。
为什么 DropZone “忽略”由选择器 id 标识的我的 jQuery?我错过了什么明显的错误吗?
更新
值得注意的是,我的配置位于$(document).ready(function () {
- 但是我在函数内部和外部都尝试过,但问题仍然存在。
解决方案
您的 dropzone 脚本可能试图在元素加载到 DOM 之前检索该值。将脚本加载到$( document ).ready()
函数中是一种方法。另一种方法是将脚本分配给一个变量,然后在 dropzone 中引用该变量,如下所示:
$("#file_uploader").dropzone({
url: '/ajax/upload.php',
dictDefaultMessage: 'Drop photos or click here to upload',
maxFilesize: 400000,
params: {'project': function() {
var x = $('#project-name').val();
return x;
}},
success: /* some function */
});
您也可以尝试直接在函数中返回输入值,看看是否可行。
$("#file_uploader").dropzone({
url: '/ajax/upload.php',
dictDefaultMessage: 'Drop photos or click here to upload',
maxFilesize: 400000,
params: {'project': function() {
return $('#project-name').val();
}},
success: /* some function */
});
推荐阅读
- javascript - 数组故障中的过滤数组
- bash - 从shell脚本在后台执行命令?
- c# - unity 3d 中的跳转计时器以及如何在 C# 中定义空格键
- node.js - 从容器内提供一个网格网站
- c# - 获取 2k 纹理的 MDB_MAP_RESIZED 错误
- model-binding - QueryString 始终为空 ASP.net Core 3.1
- javascript - 在可重用的 vue 组件中注册的事件不起作用
- c# - 如何检查计时器滴答事件何时发生
- python - 与熊猫数据框中列表的日期差异
- python - 在 pd.apply() 和 np.vectorize() 中传递函数但不使用更简单的方法时遇到问题?