0

我正在使用类似的东西,但它不适合我。

$(document).ready(function () {
    var content = $("#file_field").val();
    $("input.browser_hidden").val( content );
});

有什么建议么?即使在第二个字段中硬编码一个值也没有显示出来。

这是我正在使用的html:

    <div class="file_wrapper"> 
       <input type="file" name="file_field" id="file_field">
       <div class="file_wrapper_inner"> 
          <input class="browser_hidden" value="something in here" type="text" />
          <a class="button_browse" href="#">Browse</a>
       </div> 
    </div>

基本上我要做的是使文件输入隐藏(100%透明),当单击输入时,文件路径镜像在 .browser_hidden 输入字段中。

4

2 回答 2

3

您不能<input type="file" />使用 javascript 设置值。出于安全原因。

如果您的第二个字段不是文件输入,则上面的代码仍然无法工作,原因有一个 - 您只执行一次,当文档加载时。在那一刻,文件输入没有价值。您应该将onchange侦听器附加到文件输入,然后传输该值。

但我不确定这样做是否是个好主意。文件输入的值可能在浏览器中不一致。例如,在 Firefox 中它包含完整路径,而在 Chrome 中它似乎只包含文件名(没有检查是否是 js 访问的情况)。但无论如何,提交表单时文件名对服务器端可用。

于 2012-04-23T21:33:15.363 回答
1

好吧,在输入文件上使用更改就可以了(而不是在文档准备好时只调用一次)。

$(function(){
    $('#file_field').change(function(){
        var elem = $(this);
        $('.browser_hidden').val('Selected: ' + elem.val() );
    }); 
});​

这是一个工作示例

于 2012-04-23T21:45:01.857 回答