jQuery は、スクリプト内で非常に奇妙な動作をしています。基本的に、jquery を使用して DOM を更新した後、ID を使用して DOM に挿入されたファイル入力の値を取得しようとしています。しかし、ファイル要素に直接アクセスしようとすると、空の文字列が返されます。ただし、親 div から開始してファイルにアクセスしようとすると、正しい値が得られます。残念ながら、直接アクセスする必要があります:
alert($("#input_id").val()); //returns empty string
alert($("#div_id > #input_id").val()); //returns correct value.