【问题标题】:Upload button will not fire programmatically上传按钮不会以编程方式触发
【发布时间】:2013-04-18 09:23:15
【问题描述】:

我有一个按钮,我想使用“upclick”插件上传文件

<script type="text/javascript" src="~/Scripts/upclick-min.js"></script>

<input type="button" id="uploader" value="Upload" >

<script type="text/javascript">

   var uploader = document.getElementById('uploader');

   upclick(
     {
      element: uploader,
      action: '/path_to/you_server_script.php', 
      onstart:
        function(filename)
        {
          alert('Start upload: '+filename);
        },
      oncomplete:
        function(response_data) 
        {
          alert(response_data);
        }
     });

现在按钮本身可以工作并打开“打开文件”对话框,但我似乎无法以编程方式触发“点击”事件。我已经尝试了所有不同的语法编写方式:

if (ui.draggable.hasClass('ui-dragdrop-picElement')) {
                        //$("uploader").trigger("click");
                        //$("uploader").click();
                        //$('uploader').click();
                        //$('#uploader').click();
                        //$("#uploader").click(); 
                        //$("#uploader").trigger("click");  
                        //$('button#uploader').trigger('click');
                        $('#uploader').trigger('click'); 
                        alert("w00t");

                    }

等等 - 知道为什么它不会触发 - 我收到警报消息!

【问题讨论】:

    标签: javascript jquery button click


    【解决方案1】:
    $("uploader")...
    

    这是无效的。没有&lt;uploader&gt; 元素。

    您的最后一个 .click 使用了正确的选择器,但您希望将其与 .trigger() 事件一起使用:

    $("#uploader").trigger("click");
    

    您可能会从 jQuery 官方教程中受益良多:http://try.jquery.com。

    【讨论】:

    • 这很好用。请参阅我刚刚创建的这个 JSFiddle:jsfiddle.net/M7NsQ。如果单击“bb”,将触发“aa”按钮单击事件。您应该检查浏览器的 JavaScript 控制台以查看是否出现任何 JavaScript 错误,从而阻止您的代码按预期执行。
    • 既不是这个 $('#uploader').trigger('click');或者这个 $('button#uploader').trigger('click');触发我的按钮:( - 我在控制台中没有输出
    • 这可能意味着您的if (ui.draggable.hasClass('ui-dragdrop-picElement')) { ... } 没有被输入。在 if 语句的开头添加 alert()(或理想情况下是 console.log())消息并再次运行您的代码。如果消息未显示,则表示不满足 if 语句的条件。
    • @user2214861 从 if 语句中删除所有 $("uploader").trigger("click"); 和 $("uploader").click(); 行。你只需要一个$('#uploader').trigger('click');,然后是alert,仅此而已。 if (...) { $('#uploader').trigger('click'); alert('...'); }
    • 我有警报:alert("w00t");在 'if' 的末尾 - 它应该显示出来!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2023-04-06
    • 2015-10-23
    相关资源
    最近更新 更多