如何将值从一个表单的文件上载字段复制到另一个表单的文本字段?

时间:2013-01-21 18:22:57

标签: javascript jquery forms

我有一个页面,上面有两种不同的表格。第一种形式允许用户上传和通过电子邮件发送图像文件,第二种形式根据用户输入生成URL。

为了将图像名称添加到URL,我需要在第二种形式中使用一个字段来复制第一种形式的字段中的图像名称(我不必让用户浏览和在一页上选择图像两次)。我发现在表单中将数据从一个字段复制到另一个字段的最佳方法是这个jQuery代码:http://jsfiddle.net/nA37d/,但它不适用于我的目的。例如,它可以很好地从文本字段到文本字段,但它不能从文件字段到文本字段,或文件字段到文件字段。

有没有办法获取表单1中的文件字段的值并将其复制到表单2中的任何类型的字段?这是我的基本代码:

<script type="text/javascript">
$(function(){
    bindGroups();
});

var bindGroups = function() {
    // First copy values
    $("input[name='logotoo']").val($("input[name='logoname']").val());

    // Then bind fields
    $("input[name='logoname']").keyup(function() {
        $("input[name='logotoo']").val($(this).val());
    });
};
</script>


<form action="#..." method="post" enctype="multipart/form-data">
<input type="file" name="logoname" value="1" />
<input type="submit" value="Upload" /></form>


<form name="form2" action="/url/" method="get">
<label>Logo Name</label> <input type="text" name="logotoo" />
<input type="submit" value="Generate URL" /></form>

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:2)

只需对输入类型文件使用change()处理程序,而不是keyup:

http://jsfiddle.net/nA37d/169/

 $("input[name='a1']").change(function() {
        $("input[name='b1']").val($(this).val());
    });

对于输入文件到输入文件,我认为不可能出于安全原因。

顺便说一句,这段代码应该重构。