【问题标题】:How clone value input file如何克隆值输入文件
【发布时间】:2012-03-28 08:07:29
【问题描述】:

如何克隆文件输入字段的值属性。 像这样的:

<input type="file" id="field1"/>
<input type="file" id="field2"/>
<script>
$('#field2').val($('#field1').val());
</script>

【问题讨论】:

  • 看起来应该可以,有什么问题?
  • 您是否希望访问用户选择的文件的完整路径?如果是这样,我很确定您将无法做到。
  • [Exception...“安全错误”代码:“1000”nsresult:“0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)”位置:“local/js/jquery-1.7.1.min.js Line:2”] { constructor=DOMException, filename="@ 987654322@",代码=1000,更多...}
  • 我有两种形式,一种是外观,一种是真实的。单击 field1 时必须将值复制到 field2
  • 看起来直接克隆只能在 Firefox (fiddle) 中进行,但 MarkAllen 的回答可能是您的解决方案:stackoverflow.com/questions/415483/…

标签: jquery file input


【解决方案1】:

我找到了这个问题的解决方案:

<input type="file" id="field1"/>
<span id="field2_area"><input type="file" id="field2"/></span>
<script>
$('#field1').change(function(){
    var clone = $(this).clone();
    clone.attr('id', 'field2');
    $('#field2_area').html(clone);
});
</script>

【讨论】:

  • 你能告诉我“field1_area”是从哪里来的吗?
  • 这不起作用。貌似是克隆的,但是提交表单时,第二个文件输入为空。
  • 这在 safari 中不起作用。有什么出路吗?
【解决方案2】:

如果您希望它们在用户与它们交互时保持不变:

$(function(){
    $('#field1').on('keyup blur', function(){

            $('#field2').val($(this).val());

     }).blur();
});

在页面加载时触发 blur() 将与您已有的代码相同

编辑刚刚意识到这些是文件字段...浏览器安全限制了您可以使用它们做什么

【讨论】:

    猜你喜欢
    • 2015-12-13
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2016-06-01
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    相关资源
    最近更新 更多