相关疑难解决方法(0)

在JavaScript中,我可以以编程方式为文件输入元素触发"click"事件吗?

我想以<input type="file">编程方式在标记上触发click事件.

只是调用click()似乎没有做任何事情,或者至少它没有弹出文件选择对话框.

我一直在尝试使用侦听器捕获事件并重定向事件,但是我无法像点击某个人那样实际执行事件.

html javascript

254
推荐指数
9
解决办法
32万
查看次数

Jquery触发器文件输入

我试图使用jQuery触发上传框(浏览按钮).
我现在尝试的方法是:

$('#fileinput').trigger('click');   
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.请帮忙.谢谢.

javascript css jquery

159
推荐指数
10
解决办法
23万
查看次数

在IE8上获取访问被拒绝错误

我有一个HTML表单(upload.htm),里面有一个HTML文件上传控件.

<form id="frmupload" name="upload" enctype="multipart/form-data" action="uploadhandler.ashx" method="post">
    <input id="uploader" name="uploadctrl" type="file"/>
</form>
Run Code Online (Sandbox Code Playgroud)

上面的页面中还有一个JavaScript方法,如:

function performUpload(){
    document.getElementById('frmupload').submit();
}
Run Code Online (Sandbox Code Playgroud)

我从一个页面(uploadpage.htm)中调用它iframe:

<iframe id="docframe" src="upload.htm" style="display:none"></iframe>
Run Code Online (Sandbox Code Playgroud)

我尝试从uploadpage.htm页面执行下面的语句:

var i = document.getElementById('docframe');
i.contentWindow.performUpload();
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说访问被拒绝,我的调试器停止在我显示的第一个JavaScript函数.这两个文件都位于Web项目中的相同位置.他们也有相同的域名.为什么我会收到此错误?

当然,早些时候,我可以发布页面:当我没有name为HTML上传控件设置属性时.但是在我在HTML标记中设置name属性后,我得到了这个奇怪的错误.为什么我第一次没有这个?

看看@ this post - > "访问被拒绝"当脚本试图访问IE8中的iframe时,但它没有帮助.

javascript file-upload cross-domain access-denied internet-explorer-8

45
推荐指数
2
解决办法
5万
查看次数

jQuery:模拟点击<input type ="file"/>在Firefox中不起作用?

可能重复:
在JavaScript中我可以以编程方式为文件输入元素触发"click"事件吗?

我有一个看起来像这样的网页

<html>
    <head>
        <title>File Upload Click Test</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    </head>
    <body>
        <div onclick="$('input[type=file]').click()" >CLICK SIMULATOR</div>
        <input type="file"></input>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的目标是让div文件输入上引发点击事件,这似乎与我在IE和Chrome中所期望的完全一样,但在Firefox中不起作用(当你点击时没有打开文件浏览器div).

有没有办法让这个在FF工作?

html javascript jquery file-upload

30
推荐指数
2
解决办法
9万
查看次数

IE9文件输入使用Javascript触发

我在这里发了一个帖子:

在IE9中改变行为很奇怪

但是,我遇到了一个关于文件上传的表单处理的新事件,如果有人遇到这个问题,我很好奇.

我最初的问题是我无法使用onchange事件工作,我想也许这是我的javascript问题,但我发现它与表单被激活的方式有关.

我有一个文件输入

<input type="file" name="abc"/>
Run Code Online (Sandbox Code Playgroud)

现在我做了两件事.

我隐藏了输入并创建了一个按钮(用于更好的样式控制)来激活输入.

<button id="mybutton">click to upload a pic</button>
<input type="file" name="abc"/>
Run Code Online (Sandbox Code Playgroud)

然后JS为两者之间的互动:

$("#mybutton").click(function() {
    $("Input[type=file]").click()
};
Run Code Online (Sandbox Code Playgroud)

当然是表单的提交(我在本例中使用了parent,但是在我的实际代码中,我使用了表单id).

$("input[type=file]").change(function() {
  $(this).parent().submit();
});
Run Code Online (Sandbox Code Playgroud)

当我点击"mybutton"时,预期结果确实发生,我的浏览窗口打开,让我从我的电脑中选择一个文件.此外,当我在IE以外的所有浏览器中更改文件时,会触发onchange事件.现在,如果我取消隐藏表单并手动单击"浏览"按钮并选择一个文件,则会触发onchange事件.所以基本上浏览器会点击实际文件按钮而不是执行$("input [type = file]").click()

有人知道怎么修这个东西吗?

javascript forms jquery internet-explorer file-upload

7
推荐指数
1
解决办法
1万
查看次数

使用输入类型=文件在IE中为第一个文件无效的文件上传,适用于后续上传

上传功能在Chrome中运行得非常好,但它无法在IE 11上运行.

我正在尝试使用以下dom元素实现上载功能:

<input type="file" id="file-upload" class="hidden-inputs"/>
Run Code Online (Sandbox Code Playgroud)

我在用户点击其他内容时触发了点击,输入本身就被隐藏了.这是代码:

$("#file-upload").click();//triggering click

input.change(function(){//when file is selected
    var file = this.files[0];

    api.File.upload(path, file, function(err){//upload to server
         //do something in callback
    });
});
Run Code Online (Sandbox Code Playgroud)

当我尝试调试代码时,添加一个断点表明它不会进入更改时调用的函数.这只发生在我上传一段时间的第一次尝试,如果我不断尝试上传SAME文件.但是,如果我尝试上传文件一次(不起作用),那么我选择一个差异文件,它完美地运行.如果我触发上传功能会发生同样的事情,但是第一次没有选择项目,我点击取消,然后我再次尝试上传,这次选择一个文件,它将完美地工作.on change事件被触发,所以这不是问题.任何想法可能导致这种行为,只在IE?我很感激帮助!

编辑:此外,如果它有帮助.当多次重复失败的上载,然后在另一个文件上选择上载时,它将执行上次尝试它的次数.

javascript upload jquery html5 internet-explorer

5
推荐指数
1
解决办法
7163
查看次数