【问题标题】:JQuery: How can I invoke click event from focus event?JQuery:如何从焦点事件调用单击事件?
【发布时间】:2016-07-16 18:38:34
【问题描述】:

我的 HTML 是:

<input type="text" id="textinput" name="textinput">                         
<input type="file" id="fileinput" name="fileinput"  hidden>

我的 Javascript 是:

$('#textinput').on('focus', function () {

    console.log("focused");

    $('#fileinput').click();

});

所以,聪明的人,你可能知道我想做什么。 我想隐藏我的一个输入 (type="file") 元素并使用另一个输入 (type="text") 元素上传文件。

但是,我不能像上面的代码那样在焦点事件中调用单击事件,而我仍然可以在控制台中获得“焦点”消息。

为什么我不能在焦点事件中触发点击事件? (但我可以从另一个点击事件触发点击事件。)

感谢您未来的帮助!

【问题讨论】:

  • $('#fileinput').trigger('click');
  • @DineshPatra .click().trigger('click') 的快捷方式
  • @DineshPatra 我试过了,但没用...

标签: javascript jquery


【解决方案1】:

感谢@Pranav C Balan,让我知道快捷方式。

我已经试过了。它似乎对我有用。所以我认为你的代码的其他部分有一些错误。

<!DOCTYPE html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    </head>
    <body>
        <input type="text" id="textinput" name="textinput">                         
        <input type="file" id="fileinput" name="fileinput"  hidden>
        <script type="text/javascript">
            $('#textinput').on('focus', function () {
                console.log("focused");
                $('#fileinput').click();
            });
        </script>
    </body>
</html>

【讨论】:

  • 但我希望自然事件弹出一个文件浏览器...我不需要一个新事件只是提醒一条消息...
  • 我已经更新了代码,和你写的一样。此代码在 google chrome 中有效,但在 firefox 中无效。我正在研究 Firefox。
  • 哦,是火狐的问题。我尝试使用 Chromium,它奏效了。谢谢!
猜你喜欢
  • 2012-05-17
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2017-11-14
  • 1970-01-01
相关资源
最近更新 更多