0
votes

Bind Events Tir à deux fois dans le téléchargement de fichier jQuery

J'ai ce code écrit qui lira un fichier CSV et ajoutera des éléments à une liste SharePoint. Cela fonctionne mais il ajoute deux fois les mêmes articles. Il ajoute de haut en bas, puis ajoute des objets entiers.

Il lit les éléments correctement et ajoute correctement. Mais je ne suis pas capable de comprendre pourquoi le code fonctionne deux fois. p>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body>
  <input type="file" id="fileUpload" />
  <input type="button" id="upload" value="Upload" />
</body>


0 commentaires

3 Réponses :


0
votes

Après avoir fait des recherches, j'ai trouvé la réponse.
C'est donc ce que j'ai fini par faire.

remplacer xxx

avec xxx

Les choses fonctionnent maintenant :)


1 commentaires

Une idée de ce que la question était et pourquoi cela a aidé?



0
votes

Peut être votre script d'événement de liaison s'exécute deux fois ainsi, a ajouté deux fois l'ajout de clic. Vous pouvez nommer l'événement par une chaîne unique, de sorte qu'elle ne lie pas l'événement deux fois.

$("#upload").bind("click.uniqueName", function() {
    // your code here
})


0 commentaires

0
votes

Le problème est dans votre appel AJAX Ajouter async: faux fort> dans votre appel Ajax. En effet, votre boucle d'exécution sera exécutée avant de terminer votre demande Ajax. Do mieux ajouter cette chose. sinon, vous pouvez utiliser jQuery différé. Votre code fonctionne bien. et votre événement n'est joint qu'une seule fois.

function _createListItem(listItems, success, failure) {
  $.ajax({
    url: "https://mysite/_api/web/Lists/getbytitle('TestCatalog')/items",
    type: "POST",
    async:false,
    contentType: "application/json;odata=verbose",
    data: JSON.stringify(listItems),
    headers: {
      "Accept": "application/json;odata=verbose",
      "X-RequestDigest": $("#__REQUESTDIGEST").val()
    },
    success: function(data) {
      //success(data);
    },
    error: function(data) {
      //failure(data);
    }
  });
}


0 commentaires