2

Dropzone.js で削除関数を作成しようとしています。そのためには、アップロードされたファイルの ID が必要です。

オブジェクトのプロパティを取得しようとしましたが、成功しませんでした。今、jQuery を使用して、それを持つスパンの値またはテキスト コンテンツを取得しようとしています。

ここに画像の説明を入力

これは構造のスクリーンショットです。私が試しているjQueryコードは次のとおりです。

var loooot = $(".dz-filename").parents('span').text();

より具体的には、番号 1_1477778745352 (タイムスタンプ) を取得しようとしています。

ドロップゾーンのコードは次のとおりです。

<script>

var listing_id = "1"; 

// these are the setting for the image upload
Dropzone.options.pud = {
acceptedFiles: ".jpeg,.jpg,.png,.gif",
uploadMultiple: false,
paramName: "file", // The name that will be used to transfer the file
maxFilesize: 1, // MB
addRemoveLinks: true,
maxFiles: 10,
renameFilename: function (filename) {return listing_id + '_' + new Date().getTime();},
init: function() 
{
this.on("removedfile", function(file) 
  { 
  var loooot = $("span", ".dz-filename").html();
  alert(loooot);
  });
}
};
</script>
4

4 に答える 4

1

JQuery を使用.text();して内部テキストの更新を取得してみてください。これを DOM と一緒に使用し.ready()てください。

ディープセレクター

$(document).ready(function(){
  var fname = $("#pud .dz-filename span [data-dz-name]").text();
});

または (フォームが動的な場合)

function get_fname(){
return $("#pud .dz-filename span [data-dz-name]").text();
}

次に使用しますget_fname();

于 2016-10-29T22:44:04.527 に答える
0

私が見つけた実用的な解決策はこれです:

init: function() 
  {
  this.on("removedfile", function(file) 
    { 
    var loooot = $(file.previewElement).find('[data-dz-name]').text();
    alert(loooot);
    });
  }
于 2016-10-30T07:38:10.117 に答える
0

使用する:

var loooot = $("span", ".dz-filename").html();

ワーキングデモ

var loooot = $("span", ".dz-filename").html();
alert(loooot);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="dz-filename">
  <span>Test</span>
</div>

編集

テキストを動的に設定しているため、設定する前に jquery が HTML を読み取る場合があります。これを防ぐには、タイムスタンプの後にこの関数をコールバックとして呼び出す必要があります (spanテキストの設定方法を確認せずに助けることはできません)。 )。したがって、次のようにします。

function setSpan(callback) {
    // Set your stuffs

    // Call the callback
    callback();
}

function getText() {
    // I'm the callback witch get the html
}

//Onload
setSpan(getText());

編集

ドロップゾーンの場合、キューの後に関数を開始することができqueuecompleteます。私はドロップゾーンの専門家ではありませんが、次のように思います。

init: function () {
    this.on("queuecomplete", function (file) {
        //Get span html
        alert("All files have uploaded ");
    });
  }
于 2016-10-29T22:21:14.833 に答える
0

dropzone が動的に動作するため、未定義になります。これを使用します。

$('body').find(".dz-filename").find('span').text();

これを行う最善の方法は、dropzone を宣言することです。

//first declare somewhere variable
var my_drop;

// then on creating dropzone:
my_drop = new Dropzone('.dropzone', { 
/* your setup of dropzone */ 
});

次に、これを使用してファイルに関する情報を取得できます。

my_drop.files[0].name

表現の[0]最初のファイル。複数ある場合は、それらをループできます。

于 2016-10-29T22:24:15.937 に答える