1

ユーザーがアップロードするファイルを追加できるフォームがあります。その入力のイベントを変更すると、同じタイプの新しい入力が追加されます。ただし、新しい入力には、入力フィールドと X 文字を削除できるように、クリック イベントが付加された「X」文字が必要です。

フォーム:

  <form id="upload_form">
     <div class="p_file">
        <p class="icon">X</p>
        <input type="file" name="userfile1" size="40"  class="required"  />
     </div>
  </form>

そしてJavaScript:

   $('#upload_form input[type="file"]').change(function(){
       addUploadField($(this));
   });  

   function addUploadField($field)
   {
       $current_count = $('#upload_form input[type="file"]').length
       $next_count = $current_count + 1;
       $field.parent('p').after('
            <div class="p_file" >
                <p class="icon">X</p>
                <input type="file" name="userfile'+$next_count+'" size="40" />
            </div>
        ');
        $field.unbind('change');
        $nextField = $('#upload_form input[type="file"]').last(); 
        $nextField.bind('change',function(){
        addUploadField($(this));
     });

     $("#upload_form .icon").on('click',function(){
         removeUploadField($field);
     });
   }

 function removeUploadField($field)
 {
     $field.parent('p').remove();
 }

上記のコードは、クリックされた「X」文字の後のすべてのフィールドを削除します。私がやりたいことは、次の入力フィールドだけを削除することです。

この例を jsFiddleで準備しようとしましたが、うまくいきません。とにかくこれが役立つかもしれません。

4

1 に答える 1