2016-11-21 5 views
0

特定の入力フィールドを取り、ユーザーがファイルをアップロードできるフォームを作成しました。フォーム行は、ユーザーによって動的に追加されます。私は検証目的のために自分のフォームでjqueryバリデーションプラグインを使用しましたjquery submitHandler内のinput = fileからの値を渡します。

問題は私が選択したファイルを取得できませんでした。他のすべてのフィールドは渡されています。

HTML

<form id="upload"> 
<table class="dd" width="100%" id="data"> 

</table> 
<input name="sub" type="submit" value="Submit values"/> <input type="button" id="addnew" name="addnew" value="Add new row" /> 

</form> 

はJavaScript

$(document).ready(function() { 
    var currentItem = 1; 
    $('#addnew').click(function(){ 
     currentItem++; 
     $('#items').val(currentItem); 
     var strToAdd = '<tr><td>Year</td><td>:</td><td><select name="year[]" ><option value="2012">2012</option><option value="2011">2011</option></select></td><td width="7%">Week</td><td width="3%">:</td><td width="17%"><select name="week[]" ><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select></td><td width="8%">&nbsp;</td><td colspan="2">&nbsp;</td></tr><tr><td>Actual</td><td>:</td><td width="17%"><input name="actual[]" type="text" /></td><td width="7%">PDF</td> <td width="3%">: <input id="uploadfile1" name="userfile[]" accept="application/pdf" class="btn btn-next upload" type="file" required></td></tr>'; 
     $('#data').append(strToAdd); 

    }); 
    $("#upload").validate({ 
     submitHandler: function (form) { 
      $.ajax({ 
       url: '<?php echo base_url(); ?>/ajax_upload', 
       type: 'POST', 
       data: $(form).serialize(), 
       success: function(data) { 
        if(data){ 
         alert("success"); 
        } else { 
         alert("error"); 
        } 
       }, 
       error: function(data){ 
        alert("error"); 
       }, 
       cache: false, 
       contentType: false, 
       processData: false 
      }); 
      return false; 
     } 
    }); 
}); 

私は任意の助けが理解されるであろうテストfiddle

を行っています。

答えて

2

<form id="upload" action="#" method="POST" enctype="multipart/form-data" > 

希望を次のように、これは

0

を働くあなたは、フォーム
enctypeを使用していないフォームタグを作るには、

<form id="upload" action="#" method="POST" enctype="multipart/form-data"> 
を試してみてください
関連する問題