【问题标题】:Get value from input type file从输入类型文件中获取值
【发布时间】:2015-04-09 03:58:45
【问题描述】:

我想在使用输入类型文件时更改输入类型文本值。我已经尝试了以下代码,但我仍然无法弄清楚如何处理这个问题。

HTML:

<input type="text" name="imagem" class="filename" value="<?php echo htmlentities($row_dados['imagem'], ENT_COMPAT, 'utf-8'); ?>" size="32" readonly />

<input type="file" name="id_imagem">

JS:

$('input[type="file"]').on('change', function (event, files, label) {
var file_name = this.value.replace(/\\/g, '/').replace(/.*\//, '')
$('input[type="text"].filename').value(file_name);
});

【问题讨论】:

  • 你想在文本中设置哪个值?
  • 我更正了代码中的一些错误,但仍然无法正常工作。我想做的是从输入文件中获取值并使其显示在输入文本中,输入文本获取的值来自数据库 mysql
  • 不能,这个值是只读的。读取type="file" 的值也是有限的。你只会得到一个“fakepath/filename.ext”。
  • 已经只读删除了那部分代码,但输入文件中的值仍然没有显示在输入文本中
  • 在警报中检查这个 file_name 值..

标签: javascript php file text input


【解决方案1】:

如果您尝试更改 text 字段值,为什么要定位 file 值?

代码如下:

/* Let's bind it just for the id_imagem, not the all input[type="file"] */
$('#id_imagem').bind
(
    'change',
    function(e)
    {
        /* Supposing your fields are inside a <form>, this notation will work */
        this.form.elements['imagem'].value = this.value.replace(/\\/g, '/').replace(/.*\//, '');
        return true;
    }
);

【讨论】:

    【解决方案2】:

    小心,jquery 使用“val()”方法来访问输入值。

    我猜你的脚本在控制台中有一些错误..

    试试

    $('input[type="file"].filename').val(file_name);
    

    同样的方法,最好用下面的代码获取文件值:

    var file_name = $(this).val().replace(/\\/g, '/').replace(/.*\//, '')
    

    【讨论】:

      猜你喜欢
      • 2019-02-16
      • 2013-10-09
      • 2017-07-17
      • 1970-01-01
      • 2011-08-19
      • 2017-04-13
      • 2018-05-26
      • 2017-02-25
      相关资源
      最近更新 更多