jQuery克隆函数在chrome中不起作用

jQuery clone function is not working in chrome

本文关键字:chrome 不起作用 函数 jQuery      更新时间:2023-09-26

$(function() {
  var m_row = 0;
  $("body").on("click", "#m_add", function() {
    console.log("click lagche");
    var result = "0";
    var row;
    row = '<tr id="row_' + m_row + '">';
    var clone = $("#m_input_file").clone();
    clone.attr('id', "");
    clone.attr('name', "m_input_file" + m_row);
    row += '<td id="file_' + m_row + '"></td>';
    row += '<td><input type="hidden" name="m_sl[]" value="' + m_row + '"></td>';
    row += '</tr>';
    $("#workmanship_check table tbody").prepend(row);
    console.log(clone);
    $("#file_" + m_row).html(clone);
    m_row++;
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="workmanship_check" >
    <thead>
	    <tr>
	      <th>
	        <input type="file" id="m_input_file">
	      </th>
	      <th><a href="#" id="m_add">Add</a></th>
	    </tr>
    </thead>
    <tbody>
    </tbody>
 </table>

它可以在Mozilla firefox浏览器中工作,但不能在Chrome中工作。

有办法解决它吗?

如果没有,请建议我如何使用值动态添加输入文件?

https://jsfiddle.net/abid06/hwtmapc9/4/

如何使用值动态添加输入文件

你不能,可靠地说。浏览器对文件输入非常小心,因为它们有潜在的安全漏洞。您可以移动文件元素,同时保留其值,但不能在保留其值的同时克隆它,这在浏览器之间是不可靠的,原因与您不能创建具有提供的默认值的元素非常相似。