Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 触发单击非隐藏输入字段_Javascript_Jquery_Html_File Io_Onclick - Fatal编程技术网

Javascript 触发单击非隐藏输入字段

Javascript 触发单击非隐藏输入字段,javascript,jquery,html,file-io,onclick,Javascript,Jquery,Html,File Io,Onclick,所以我试着做标准的“有一个按钮触发一个文件输入字段”的事情。然而,我甚至还没有隐藏输入字段——现在它与应该触发单击的按钮一起出现在页面上。然而,它不起作用 <body> <button id="uploadDocument" type="button" class="btn btn-primary btn-lg"> <span>Check In</span> </button> <input

所以我试着做标准的“有一个按钮触发一个文件输入字段”的事情。然而,我甚至还没有隐藏输入字段——现在它与应该触发单击的按钮一起出现在页面上。然而,它不起作用

<body>
    <button id="uploadDocument" type="button" class="btn btn-primary btn-lg">
        <span>Check In</span>
    </button>
    <input id="fileupload" type="file" name="files[]" />
</body>
<script type="text/javascript">
    $(document).ready(function() {
        $("#uploadDocument").on("click", function() {
            $("#fileupload").trigger("click");
       });
    });
</script>

登记入住
$(文档).ready(函数(){
$(“#上载文档”)。在(“单击”,函数()上){
$(“#文件上载”)。触发器(“单击”);
});
});
不管出于什么原因,这都行不通。正如我所说,正如你所看到的,输入字段并没有隐藏——它就在页面上。什么也没发生。如果您调试它并在代码中设置断点,它将永远不会被命中。我想这一定是显而易见的,但我绞尽脑汁想不出来。

为什么不能以编程方式触发文件输入选择?

作为安全预防措施,当输入字段没有收到直接单击(或键盘)事件时,大多数浏览器都会阻止提交文件。某些浏览器(如Google Chrome)只是阻止单击事件,而Internet Explorer则不提交任何由程序触发的文件输入字段选择的文件。 Firefox4(及更高版本)是迄今为止唯一一款完全支持在完全隐藏(显示:无)的文件输入字段上调用“点击”事件的浏览器。

为什么不能以编程方式触发文件输入选择?

作为安全预防措施,当输入字段没有收到直接单击(或键盘)事件时,大多数浏览器都会阻止提交文件。某些浏览器(如Google Chrome)只是阻止单击事件,而Internet Explorer则不提交任何由程序触发的文件输入字段选择的文件。
Firefox4(及更高版本)是迄今为止唯一一款完全支持在完全隐藏(显示:无)的文件输入字段上调用“单击”事件的浏览器。

您应该在更改而不是单击时触发

<script type="text/javascript">
$(document).ready(function() {
    $("#uploadDocument").on("click", function() {
        $("#fileupload").trigger("change");
   });
});

$(文档).ready(函数(){
$(“#上载文档”)。在(“单击”,函数()上){
$(“#文件上载”).trigger(“更改”);
});
});


选中此处

您应该在更改时触发,而不是单击

<script type="text/javascript">
$(document).ready(function() {
    $("#uploadDocument").on("click", function() {
        $("#fileupload").trigger("change");
   });
});

$(文档).ready(函数(){
$(“#上载文档”)。在(“单击”,函数()上){
$(“#文件上载”).trigger(“更改”);
});
});


请点击此处(“#文件上传”)。您的代码在中运行良好。但是,如果您将jQuery的版本更改为旧版本,它将无法工作。较旧版本的jQuery不会触发浏览器事件。您的jQuery是最新的吗?我们在这里使用jQuery 1.11.0。$(“#fileupload”)。单击()您的代码在中运行良好。但是,如果您将jQuery的版本更改为旧版本,它将无法工作。较旧版本的jQuery不会触发浏览器事件。您的jQuery是最新的吗?我们正在使用jQuery 1.11.0。非常感谢!我错过了jQueryUpload文档中的那一部分-我们必须这样做,但这对于安全风险是有意义的。非常感谢!我错过了jQueryUpload文档的这一部分——这是我们必须要做的事情,但对于安全风险来说,这是有意义的。