javascript onclick 在 chrome 和 IE8 中不起作用,但在 firefox 7.0.1 中起作用
我有这个JavaScript。
<script type="text/javascript">
function HandleBrowseClick()
{
var fileinput = document.getElementById("userFile");
fileinput.click();
}
</script>
<script type="text/javascript">
function callAddUsers() {
//alert("callAddUsers");
var fup = document.getElementById('userFile');
var fileName = fup.value;
document.f1.action = "addUsers.action";
document.f1.submit();
}
</script>
这是我的 HTML..
<input type="file" class="button" id="userFile"
name="userFile" onChange="callAddUsers();" style="display: none"/>
<input type="button" class="button" value="Add User" id="fakeBrowse" onclick="HandleBrowseClick();"/>
我使用这种两步调用风格,因为我想为我的文件上传按钮使用特定名称,而不是像“选择文件、浏览……等”这样的默认名称。
问题详细信息。 在 Firefox 中,一切正常。调用操作并正确执行该操作。
在 IE 中,它仍然调用 callAddUsers() 函数,但不调用操作。
在 Chrome 中,它不适用于 fileinput.click();
问题可能出在哪里?
提前谢谢。
I have this javascript.
<script type="text/javascript">
function HandleBrowseClick()
{
var fileinput = document.getElementById("userFile");
fileinput.click();
}
</script>
<script type="text/javascript">
function callAddUsers() {
//alert("callAddUsers");
var fup = document.getElementById('userFile');
var fileName = fup.value;
document.f1.action = "addUsers.action";
document.f1.submit();
}
</script>
Here is my HTML..
<input type="file" class="button" id="userFile"
name="userFile" onChange="callAddUsers();" style="display: none"/>
<input type="button" class="button" value="Add User" id="fakeBrowse" onclick="HandleBrowseClick();"/>
I use this two step calling style because I want to use Specific Name for my file upload button, not the default one like "choose file,browse..etc."
Problem Details.
In Firefox, all things are working. Calls action and do the action correctly.
In IE, it still call callAddUsers() function but not call action.
In Chrome, it is not working for fileinput.click();
Where might be the problem?
Thanks ahead.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
表单和表单输入上的
display:none
是使它们不可提交的可靠方法;) 出于安全原因,这是由浏览器完成的。如果您需要隐藏可见输入 - 给它
opacity: 0.1
或width: 1px;溢出:隐藏;
。但关于您的具体问题,您可能只想使用
label
标记。它将收到的所有点击转移到专用的输入
。因此,您将能够使丑陋的文件输入看起来像您想要的任何方式。display:none
on forms and form inputs is a sure way to make them non-submittable ;) This is done by browsers for security reasons.If you need to hide your visible input - give it
opacity: 0.1
orwidth: 1px; overflow: hidden;
.But regarding your specific problem, you probably just want to use a
label
tag. It transfers all clicks received to dedicatedinput
. And thus you will be able to make your ugly file input look any way you want.尝试下面的代码
希望这对您有帮助。
Try this following code
Hope this helps you.