2017-10-16 10 views
0

ループ上の別の行のデータで同じファイルを選択すると、jQueryの変更が機能しません。ループ上の同じファイルを選択すると、jQueryが機能しない

for($i=$Page_Start;$i<$Page_End;$i++) 
{ 
?> 
    <tr class="trClick" id="<?php echo $dData['DESCRIPTIONID'][$i]; ?>" data-toggle="modal"> 
     <td>Data</td> 
    </tr> 
<?php 
} 

モーダル

<div id="modalBellDescriptionLoad" class="modal fade"> 
    <div class="modal-dialog"> 
     <form id="updateDescription" action="" method="post" autocomplete="off"> 
      <div class="modal-content"> 
       <input type="file" name="bellToneFileInput" class="bellToneFileInput" id="bellToneFileInput"/> 
      </div> 
     </form> 
    </div> 
</div> 

jQueryの

$(".bellToneFileInput").change(function() 
{ 
    alert("Test"); 
}); 

私は別の行データループに別のファイルを選択した場合、警告が表示されます。同じファイルを選択すると、アラートは表示されません。

私のコードで何か問題がありますか?

+0

これを見てみましょう:https://stackoverflow.com/questions/4109276/how-to-detect-input-type-file-change-for-the-same- file – Vincent1989

+0

実際に値が変更されていない可能性があります。あなたの.change()関数で '$("。bellToneFileInput ").val(null); –

答えて

1

同じファイルを再度選択すると、入力の値は変更されません。ただし、イベントはFirefox 57でトリガーされ、Chrome 61ではトリガーされません。クリックで値を空にすることをお勧めします。

更新:イベントは値を空にすることなく、トリガされたが、同様Firefox 56である、しかし、あなたはEdge 40IE 11に値を空にしなければなりません。

/* Without Clearing Value */ 
 
$('#non-empty-upload').change(function() { 
 
    alert(this.files[0].name); 
 
}); 
 

 
/* With Clearing Value */ 
 
$('#empty-upload').on('click', function() { 
 
    $(this).val(''); 
 
}).on('change', function() { 
 
    alert(this.files[0].name); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h2>Without Emptying Value</h2> 
 
<input id="non-empty-upload" type="file"> 
 
<hr> 
 
<h2>Emptying Value</h2> 
 
<input id="empty-upload" type="file">

+0

素晴らしいです、完璧に働きました。乾杯 –

関連する問題