【问题标题】:Changing input's value based on another input's value根据另一个输入的值更改输入的值
【发布时间】:2012-02-16 13:18:46
【问题描述】:

比如说我有这个代码:

<input type="file" id="file" name="">
<input class="uploadarea">
<span class="button">Browse</span>

现在我已经设置了一些 css 来更改默认输入文件按钮的外观,现在的问题是,当我选择文件时,如何根据 #file 的值更改 .uploadarea 的值?

我目前有此代码,但我不知道下一步该做什么。

var x = document.getElementsByTagName('input');
inputfile = x[0];
textbox = x[1];

【问题讨论】:

  • 你到底想做什么?
  • 我想使用input[type=file] 中的文件路径作为uploadarea 类的输入值。
  • @user1099531 您无法使用文件输入元素获取文件的路径,只能获取文件名。
  • 你为什么要使用类?有很多吗?
  • ^不,但有些元素的样式与那些元素相同。

标签: javascript forms


【解决方案1】:

添加一个onchange处理程序来处理文件事件上的change事件:

<input type="file" id="file" name="" onchange="something(this.value)">
<input id="somethinghere" class="uploadarea">
<span class="button">Browse</span>

function something(val) {
    document.getElementById('somethinghere').value = val;
}

您需要添加id 属性才能使其工作

【讨论】:

  • 我应该把它放在头部还是&lt;/body&gt;之前?
  • 你可以把脚本放在 作为它的触发 - 即不依赖 DOM 准备好
  • 很奇怪。值为undefined
  • 当我选择一个文件时,somethinghere 的值现在是undefined
  • 啊,我明白了。谢谢@ManseUK
【解决方案2】:

是的。使用onchange。 顺便读一下alternate to onchange event in <input type='file' />。文件选择后JS操作存在一些问题。

【讨论】:

    【解决方案3】:

    简单的jQuery代码:

    $('#file').change(function(){
        $('.uploadarea').val(this.value);
    });
    

    Javascript

    <input type="file" id="file" onchange="foo()" />
    <input class="uploadarea" id="other" />
    
    function foo(){
        document.getElementById('other').value = this.value
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2017-12-30
    相关资源
    最近更新 更多