Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我添加另一个文件输入字段时,所选文件将被删除_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript 当我添加另一个文件输入字段时,所选文件将被删除

Javascript 当我添加另一个文件输入字段时,所选文件将被删除,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有一个表单,可以根据用户需要添加新的文件输入字段。我用一个div环绕输入,如下所示: <div id="fileinputs"> <div class="myinput"> <label for="PropertyPic01">Photos</label> <input type="file" name="data[Property][pic01]" id="PropertyPic01">

我有一个表单,可以根据用户需要添加新的文件输入字段。我用一个div环绕输入,如下所示:

<div id="fileinputs">
    <div class="myinput">
        <label for="PropertyPic01">Photos</label>
        <input type="file" name="data[Property][pic01]" id="PropertyPic01">
    </div>
</div>

照片
我的jQuery代码执行以下操作:

//Add Pic link
$('#addPic').click(function(e)
{
    if(!window.fotoCtr)
    {
        window.fotoCtr = 2;
    } else
    {
        window.fotoCtr++;
    }

    if(window.fotoCtr == 5)
    {
        $('#addPic').html('');
    }

    e.preventDefault();
    $('div#fileinputs').html($('div#fileinputs').html() + 
        '<div class="input file">' +
        '<input type="file" name="data[Property][pic0' + window.fotoCtr + ']" id="PropertyPic0' + window.fotoCtr + '">' +
        '</div><br/>'
        );
})
//添加Pic链接
$('#addPic')。单击(函数(e)
{
如果(!window.fotoCtr)
{
window.fotoCtr=2;
}否则
{
window.fotoCtr++;
}
如果(window.fotoCtr==5)
{
$('#addPic').html('');
}
e、 预防默认值();
$('div#fileinputs').html($('div#fileinputs').html()
'' +
'' +
“
” ); })
我遇到的问题是,如上所述添加另一个文件输入字段会导致从其他输入中删除所选文件。是否仍有修复此问题的方法?

使用
html()
而不是
append()
方法,这将使数据作为文件绑定到以前的元素:

$('div#fileinputs').append(
        '<div class="input file">' +
        '<input type="file" name="data[Property][pic0' + window.fotoCtr + ']" id="PropertyPic0' + window.fotoCtr + '">' +
        '</div><br/>');
$('div#fileinputs')。追加(
'' +
'' +
“
”);
如果你是对的,你应该使用append(),而不是html()。那有点愚蠢。想回答一下吗?