2017-02-24 7 views
-2

Hier ist die Funktion:Wie erstelle ich jedes Mal, wenn eine Funktion aufgerufen wird, eine eindeutige ID in JavaScript?

function addAttachment() { 
    if (allowed_attachments <= 0) 
     return alert("', $txt['more_attachments_error'], '"); 

    document.getElementById("uploadBtn").onchange = function() {             
     document.getElementById("uploadFile").value = this.value; 
    }; 


    setOuterHTML(document.getElementById("moreAttachments"), 
     \'<div class="upload_attachment">\ 
      <input id="uploadFile" placeholder="File">\ 
      <label class="custom-file-input">\ 
       <input type="file" id="uploadBtn" name="attachment[]">\ 
      </label></div><span id="moreAttachments">\ 
     </span>\'); 
    allowed_attachments = allowed_attachments - 1; 
    return true; 
} 

uploadBtn und Upload müssen einzigartig jedes Mal sein, wie dies ich tun? Ich steckte wirklich

+0

Wie einzigartig ist „einzigartig“ sein? Weltweit einzigartig? Genügend einzigartig innerhalb eines bestimmten Zeitrahmens für einen Benutzer? – deceze

+0

Kurze Antwort: Erzeugen Sie eine ausreichend große Zufallszahl. – deceze

+0

Sie können [Monghos wahrer Uniquie ID] (https://github.com/mongoh/tuid) überprüfen –

Antwort

1

Verwendung Datum Objektmethode jetzt Date.now()

+0

Wird nicht gut genug sein, wenn die ID * weltweit einzigartig sein muss * ... – deceze

+0

Es wird immer einzigartig sein. Jedes Mal, wenn Sie "Date.now()" eingeben, erhalten Sie den aktuellen Zeitstempel. Sie können dies in der Konsole überprüfen 2-3 mal. –

+0

* Global * einzigartig bedeutet, dass dies immer noch einzigartig sein muss, auch wenn zwei verschiedene Leute es zur selben Zeit tun ...! – deceze

2

ein globales Objekt verwenden (aus dem Anwendungsbereich von addAttachement) wie folgt aus:

var UNIQUE_ID = 0; // the ID counter (will be incremented each time a new item is created so it'll be unique) 

function addAttachment() { 
    if (allowed_attachments <= 0) 
     return alert("', $txt['more_attachments_error'], '"); 

    document.getElementById("uploadBtn").onchange = function() {             
     document.getElementById("uploadFile").value = this.value; 
    }; 

    UNIQUE_ID++; // increment the ID counter 

    setOuterHTML(document.getElementById("moreAttachments"), 
     '<div class="upload_attachment">\ 
      <input id="uploadFile' + UNIQUE_ID + '" placeholder="File">\ 
      <label class="custom-file-input">\ 
       <input type="file" id="uploadBtn' + UNIQUE_ID + '" name="attachment[]">\ 
      </label></div><span id="moreAttachments' + UNIQUE_ID + '">\ 
     </span>'); 
    allowed_attachments = allowed_attachments - 1; 
    return true; 
} 
Verwandte Themen