无法在加载的模式中触发单击事件

时间:2017-04-21 06:47:27

标签: javascript jquery asp.net-mvc bootstrap-modal

所以,我将局部视图渲染为bs模态,在其中我有文件输入,我希望在显示模态时立即打开。我已经尝试了很多很多方法来使它工作,但它一直在抵制:)也许有人有线索是什么问题。

这是我的View JS:

$(function() {
    $(document).off('shown.bs.modal', '#js-edit-avatar-modal');
    $(document).on('shown.bs.modal', '#js-edit-avatar-modal',
        function() {
            console.log($('#browse-btn'));
            $('#browse-btn').click();
        });
});

以模态输入:

<label id="browse-btn" class="btn btn-sm btn-primary">
                @ApplicationStrings.BrowseText
                <input type="file" name="image" id="image" onchange="readUrl(this);" style="display: none" />
            </label>

这是控制台:

Console screenshot

第一个是用

触发的
  

的console.log($(&#39;#浏览-BTN&#39;));

其他两个我手动输入,第二个显示它返回相同的对象,第三个打开输入对话框。

我尝试过:删除display:none,使用$('#browse-btn').trigger('click');将事件更改为show.bs.modal,在显示模态后设置2秒延迟然后触发click事件,尝试触发另一个仅具有日志记录功能的按钮,仍然没有奏效。  也许在隐藏按钮上自动调用click事件有一些安全限制?但是,当我将其显示为可见时,它仍然无效,并且键入完全相同的

  

$(&#39;#浏览-BTN&#39)。单击();

控制台中的

始终有效。

任何信息都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用以下代码,让我知道是否有效。

$('#browse-btn').trigger("click");