2013-06-27 67 views
1

我有一个页面,我要生成的表单输入。附加<input>不工作

我这样做与jQuery:

function getval() { 

    $('#UploadForm').empty(); 

    var limit = $("#GalleryCount").val(); 

    for(var i = 1;i<=limit;i++) { 

     $('#UploadForm').append('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file'+i+'" value="file'+i+'" /></div>'); 
    } 
} 

元素也被添加到编号#UploadForm但当形式sendt,他们没有得到擦肩而过,DIV,它的工作原理,当我加入费尔德到HTML页面静态,因为我所用JS生成的完全相同的副本。

PHP:

$i = 1; 
while (!empty($_FILES['file'.$i]['name'])) { 

    echo $_FILES['file'.$i]['name']; 
    $i++; 
} 

HTML表单propertise:

<form class="form-horizontal well" action="postAction.php" method="post" enctype="multipart/form-data"> 
+2

分别是你'#UploadForm'?新的输入但在表单标签 – Sergio

+0

之间添加的是在结束之前标记是 –

+0

那些不是文件.....“文件”+我不包含任何扩展 – KyleK

回答

1

显然:

$('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file'+i+'" value="file'+i+'" /></div>').appendTo('#UploadForm'); 

OR

$('form#UploadForm').append('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file'+i+'" value="file'+i+'" /></div>'); 

应该可以工作。

通过在'#UploadForm'之前添加'表单',确保输入实际上被添加到表单中,而不仅仅是表单外的页面。

1

由于安全原因,浏览器不允许value属性的编程性赋值,input元素的值为type="file"

想象一下,如果这是可能的。恶意的JavaScript能够从用户计算机上传(或者至少尝试上传)任意文件。

0

,我认为它会更容易使名称的数组name="file[i]"

$('#UploadForm').append('<div class="imgOrderAdmin"><label for="file'+i+'">Image '+i+'</label><input type="file" name="file['+i+']" /></div>'); 

,并在PHP

for($i=1;$i<=count($_FILES['file']);$i++){ 
    if(!empty($_FILES['file'][$i]['name'])) { 
    echo $_FILES['file'][$i]['name']; 
    } 
}