簡體   English   中英

Ajax調用成功后,jQuery調用無法正常工作

[英]JQuery call not working after Ajax call succeeds

我有一個看起來像這樣的Ajax呼叫:

$("#start-upload-btn").click(function(){
    $.ajax({
        type: "post",
        url: "",
        data: {
            newProjectName: $('#project-name').val(),
            csrfmiddlewaretoken: csrfToken
        },
        success: function(data){
            $("#file-upload").click();
        }
    })
});

成功后,我想單擊ID為#file-upload的元素以啟動文件選擇對話框,但是將代碼放入成功功能將無法正常工作。 它在其他任何地方都可以使用。 關於Ajax成功功能的范圍有什么特別之處嗎? 我真的無法弄清楚。

謝謝

從ajax成功回調中發出對任何常規元素(包括按鈕)的click都沒有固有的問題。

問題在於文件輸入對話框不是“普通元素”。 它具有一些特定的安全限制-其中之一顯然限制了您與其的交互。

以下小提琴對此進行了演示: https : //jsfiddle.net/qhfwobpz/

您會看到在file-upload click就可以正常工作。 通過ajax回調進行操作,您會看到調用了該回調,但是文件對話框從不顯示。

該答案提供了有關“為什么”的更多詳細信息,歸結為您可以從用戶發出的事件中打開對話框,但不能純粹以編程方式打開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM