javascript - 如何单击带有按钮的隐藏输入文件的行

标签 javascript jquery html css twitter-bootstrap

我需要替换原来的input type="file"<button>与 Bootstrap 风格。这个想法是用 jquery 隐藏它 hide()首先。然后用一个按钮触发它。

只有一个按钮时一切正常。但是每当添加另一个按钮时。选择对话框根据文件输入的个数不断显示。

我需要每个按钮来选择它的输入文件。所以我给它一个带有通配符选择器的唯一 ID。它仍然不起作用。这是代码。

HTML

<form method="get" action="">File Upload 1.
    <input type="hidden" name="sid" value="1" />
    <input type="file" name="file1" id="file1" />
    <button type="button" id="browse1" class="btn btn-primary"> <i class="glyphicon glyphicon-upload"></i>&nbsp;Upload</button>
</form>
<hr />
<form method="get" action="">File Upload 2.
    <input type="hidden" name="sid" value="1" />
    <input type="file" name="file2" id="file2" />
    <button type="button" id="browse2" class="btn btn-primary"> <i class="glyphicon glyphicon-upload"></i>&nbsp;Upload</button>
</form>
<hr />
<form method="get" action="">File Upload 3.
    <input type="hidden" name="sid" value="3" />
    <input type="file" name="file3" id="file3" />
    <button type="button" id="browse3" class="btn btn-primary"> <i class="glyphicon glyphicon-upload"></i>&nbsp;Upload</button>
</form>
<hr />

Javascript

$(document).ready(function () {
    $('input[id^=file]').hide();
    $('button[id^=browse]').click(function () {
        $('input[id^=file]').click();
    })
});

此处演示:http://jsfiddle.net/nobuts/txvq7hxv/4/

请帮帮我! :(

最佳答案

如果你想要的不止一个,最好不要使用 id! 试试这个 http://jsfiddle.net/txvq7hxv/6/ 注意:这是一个快速 hack,不是为了重用。

JavaScript

$(document).ready(function () {
$('input[id^=file]').hide();
$('.browse').click(function () {
    console.log(this);
    $(this).closest('form').find('input[id^=file]').click();
})
});

HTML

    <form method="get" action="">File Upload 1.
    <input type="hidden" name="sid" value="1" />
    <input type="file" name="file1" id="file1" />
    <button type="button" id="browse" class="btn btn-primary browse"> <i class="glyphicon glyphicon-upload"></i>&nbsp;Upload</button>
</form>
<hr />
<form method="get" action="">File Upload 2.
    <input type="hidden" name="sid" value="1" />
    <input type="file" name="file2" id="file2" />
    <button type="button" id="browse" class="btn btn-primary browse"> <i class="glyphicon glyphicon-upload"></i>&nbsp;Upload</button>
</form>
<hr />
<form method="get" action="">File Upload 3.
    <input type="hidden" name="sid" value="3" />
    <input type="file" name="file3" id="file3" />
    <button type="button" id="browse" class="btn btn-primary browse"> <i class="glyphicon glyphicon-upload"></i>&nbsp;Upload</button>
</form>
<hr />

关于javascript - 如何单击带有按钮的隐藏输入文件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26144942/

相关文章:

c# - 在没有回发的情况下使用 jquery 在 ASP.NET Web 表单中显示数据插入的转发器

jquery - 当数据传入时,WCF Rest Service 中的 POST 方法不起作用?

javascript - 获取表单 Angular 字段

html5 2 image inside section 只有CSS

javascript - 单击按钮后如何停止keydown功能

javascript - 检查相关对象在 Ember 和 Ember 数据中是否为 null

javascript - 当一个或多个函数完成时调用一个函数

javascript - 获取首选的div高度

javascript - Jquery 使新插入的 div 可拖动

javascript - 为 json 对象中的每个条目添加唯一的 id