2011-10-04 102 views
0

我有这个javascript。javascript onclick不在铬和IE8中工作,但在Firefox 7.0.1工作

<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();

哪里可能是什么问题?

请提前致谢。

+0

将文件输入封装在'label'标签中进行设计。 '因为这似乎是你想要做的。 – c69

+0

但我想输入文件上传为按钮样式。 – kitokid

+0

然后 - 在'

回答

0

display:none关于表单和表单输入是一种确保他们不可提交的方式;)这是由浏览器出于安全原因完成的。

如果您需要隐藏您的可见输入 - 给它opacity: 0.1width: 1px; overflow: hidden;

但关于您的具体问题,您可能只想使用label标记。它将收到的所有点击转移到专用input。因此,您将能够以任何您想要的方式使您难看的文件输入。

+0

仍然以不同的方式工作。在IE中,它显示清楚:( – kitokid

+0

感谢那'display:none'提示。:) – kitokid

0

试试这个下面的代码

<input id="dummyInput2" size="10" readonly><input type="file" id="userFile" name="userFile" value="" size="1" onchange="callAddUsers(this,\'dummyInput2\')" /><input type="button" class="button" value="Add User" id="fakeBrowse"/> 

function callAddUsers(obj,target) 
{ 
    document.getElementById(target).value = obj.value; 
    var fup = document.getElementById('userFile'); 
    var fileName = fup.value; 
     document.f1.action = "addUsers.action"; 
     document.f1.submit(); 

} 
#dummyInput2 
{ 
    z-index :1 
    cursor : pointer; 
} 
#userFile 
{ 
    position:absolute; 
    top:xxx;//change to what you wish 
    left:xxx;//change to what you wish 
    z-index :2; 
    opacity : 0; 
    filter : alpha(opacity=0); 
    cursor : pointer; 
} 
#fakeBrowse 
{ 
    position :absolute; 
    cursor : pointer; 
    width : 30px;//change to what you wish 
    height: 23px;//change to what you wish 
} 

希望这有助于你。

相关问题