【发布时间】:2010-11-12 21:58:30
【问题描述】:
如何将浏览按钮重命名为“选择文件”?例如:
<input type=file name=browse >
【问题讨论】:
标签: html
如何将浏览按钮重命名为“选择文件”?例如:
<input type=file name=browse >
【问题讨论】:
标签: html
<script language="JavaScript" type="text/javascript">
function HandleBrowseClick()
{
var fileinput = document.getElementById("browse");
fileinput.click();
}
function Handlechange()
{
var fileinput = document.getElementById("browse");
var textinput = document.getElementById("filename");
textinput.value = fileinput.value;
}
</script>
<input type="file" id="browse" name="fileupload" style="display: none" onChange="Handlechange();"/>
<input type="text" id="filename" readonly="true"/>
<input type="button" value="Click to select file" id="fakeBrowse" onclick="HandleBrowseClick();"/>
【讨论】:
group_id。我应该怎么寄?在 HTML <input type="hidden" class="hide" id="group_id" name="group_id" value="2" /> 中但在脚本中?
该按钮不称为“浏览按钮”——这只是您的浏览器为其命名的名称。浏览器可以随意实现文件上传控制。例如,在 Safari 中,它被称为“选择文件”,它位于您可能正在使用的任何内容的对面。
您可以使用the technique outlined on QuirksMode 为上传控件实现自定义外观,但这不仅仅是更改按钮的文本。
【讨论】:
<label>标签包裹<input type="file">;<span> 或<a>;display: none 使input[type="file"] 不可见。【讨论】:
一点 JavaScript 就能搞定:
<script language="JavaScript" type="text/javascript">
function HandleBrowseClick()
{
var fileinput = document.getElementById("browse");
fileinput.click();
var textinput = document.getElementById("filename");
textinput.value = fileinput.value;
}
</script>
<input type="file" id="browse" name="fileupload" style="display: none"/>
<input type="text" id="filename" readonly="true"/>
<input type="button" value="Click to select file" id="fakeBrowse" onclick="HandleBrowseClick();"/>
不是最好看的解决方案,但它确实有效。
【讨论】:
您可以使用简单的 css/jq 解决方法来做到这一点: 创建一个触发隐藏的浏览按钮的假按钮。
HTML
<input type="file"/>
<button>Open</button>
CSS
input { display: none }
jQuery
$( 'button' ).click( function(e) {
e.preventDefault(); // prevents submitting
$( 'input' ).trigger( 'click' );
} );
【讨论】:
type="button",否则它将提交表单。
这是使用纯 HTML 和 javascript “重命名”具有文件类型且不使用 JQuery 的输入文本的最佳、简单、简短和干净的方法:
<input id='browse' type='file' style='width:0px'>
<button id='browser' onclick='browse.click()'>
*The text you want*
</button>
【讨论】:
【讨论】:
不,您不能更改文件上传输入的文本。但是有一些技巧可以在按钮上叠加图像。
【讨论】:
您也可以使用 Uploadify,这是一个很棒的 jQuery 上传插件,它可以让您上传多个文件,并且还可以轻松地设置文件字段的样式。 http://www.uploadify.com
【讨论】: