Javascript DropZone JS未从jQuery ID调用的输入字段中获取外部值

Javascript DropZone JS未从jQuery ID调用的输入字段中获取外部值,javascript,jquery,html,dropzone.js,Javascript,Jquery,Html,Dropzone.js,我遇到了DropZone JS获取输入值并将其传递给上载脚本的问题。上传工作正常,除了此字段未在POST中发送外,一切正常 我有一个非常基本的DZ配置: $("#file_uploader").dropzone({ url: '/ajax/upload.php', dictDefaultMessage: 'Drop photos or click here to upload', maxFilesize: 400000, params: {'project': $

我遇到了DropZone JS获取
输入值并将其传递给上载脚本的问题。上传工作正常,除了此字段未在
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">
它起作用了。因此,Dropzone由于某种原因无法“查看”该输入字段

我想它可能是id
项目名称中的破折号
——但根据HTML5中的规则,破折号在id中是允许的

控制台中没有错误,这是:

// Testing if Selector is working
$(document).on('keyup', '#project-name', function () {
    console.log( $('#project-name').val() );
});
键入
项目名称时,在控制台中正确显示
内容,因此我知道我的选择器正常。因此,我对为什么DropZone没有“看到”它感到困惑

为什么DropZone“忽略”我的jQuery由选择器id标识?我错过了什么明显的错误吗

更新
值得注意的是,我的配置位于
$(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 */
});

一定要让我知道这个方法是否有效,如果无效,我可以修改或删除它。干杯。谢谢。我很快就会回到那个脚本。你说的有道理。我确实知道
(document)。ready()
没有区别..但是在DZ中有一个函数是完全有意义的..当我回到DZ时我一定会更新它..谢谢!都不起作用..他们只是通过文本-->
function(){return$('#project name').val();}
作为变量
project
post
发送到
upload.php
$("#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 */
});