Chr*_*ini 8 jquery cross-browser
这很奇怪.我有一个简单的表格.我在这个表单之外有一个文件输入元素.
用户单击文件输入元素并选择一个文件.我使用以下代码克隆文件输入:
$('input[name="song[attachment]"]').clone(true).appendTo('form')
Run Code Online (Sandbox Code Playgroud)
在所有浏览器中:FF,Opera,Safari,Chrome,当我检查表单元素时,我在表单中看到了克隆的文件输入元素.但是,当我在FF和Opera中提交表单时,它可以工作.Safari和Chrome使用空文件输入提交表单.
我注意到克隆文件输入元素并将其附加到表单元素时,它不会复制其值.它只克隆一个空的输入文件元素.这是正常的吗?
我的Jquery代码有问题吗?或者这是一个安全问题,这就是为什么Safari和Chrome不允许我这样做的原因?如果是后者,为什么FF和Opera会这样做呢?
您无法为文件输入指定默认值,甚至无法在 js 中对其进行编辑。它的默认值始终为空。这是一个安全问题,某人可以隐藏文件输入(display:none例如),并在他不知情的情况下从客户端计算机上传敏感数据。
至于你问题的第二部分,我不完全确定这个问题,只是一个想法。你的输入有id吗?如果是这样,您应该考虑到它在 DOM 中必须是唯一的。