绑定事件在Jquery文件上传中触发两次

问题描述 投票:0回答:1

我已编写此代码,它将读取CSV文件并将项目添加到SharePoint列表。它正在工作,但是两次添加相同的项目。它从上到下添加,然后再次添加整个项目。

它正确读取项目并正确添加。但是我无法弄清楚为什么代码要运行两次。

这是我的代码

<script type="text/javascript">
    $(function () {
        $("#upload").bind("click", function () {
            var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/;
            if (regex.test($("#fileUpload").val().toLowerCase())) {
                if (typeof (FileReader) != "undefined")
                 {
                    var reader = new FileReader();
                    reader.onload = function (e)
					{                    
                       						

                        
                        var rows = e.target.result.split("\n");
                        
                        console.log(rows);
                        for (var i = 1; i < rows.length; i++) {
                        
                            
                            var cells = rows[i].split("|");
                            var item = {"__metadata": {"type": "SP.Data.TestCatalogListItem"},
											"Title": cells[0],											
											"CityTitle":cells[1],
											"FirstName":cells[3],
											"LastName":cells[4]
																	
											}
											
											_createListItem(item);
											
                        
                        }
                                                
                  }
                    reader.readAsText($("#fileUpload")[0].files[0]);
					
                }
				else {
                    alert("This browser does not support HTML5.");
                }
            } else {
                alert("Please upload a valid CSV file.");
            }
        });
    });
    
    
    
function _createListItem( listItems, success, failure) {
			$.ajax({
			url: "https://mysite/_api/web/Lists/getbytitle('TestCatalog')/items",
			type: "POST",
			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);
			}
			});
}  
</script>
<body>
<input type="file" id="fileUpload" />
<input type="button" id="upload" value="Upload" />      
</body>

非常感谢任何帮助。

jquery sharepoint sharepoint-2013 sharepoint-online sharepoint-designer
1个回答
0
投票

经过一些研究,我找到了答案所以这就是我最终要做的

替换$(“#upload”)。bind(“ click”,函数(){

$(“#upload”)。unbind(“ click”)。click(function(){

现在正在工作:)

© www.soinside.com 2019 - 2024. All rights reserved.