Динамический JavaScript, чтобы определить, установлены ли флажки, и отключить соответствующие поля ввода.

0

При динамическом загрузке набора полей ввода с предложением PHP For я хочу иметь флажок для каждой из строк, поэтому, если пользователь проверит его, все поля ввода для этой конкретной строки будут отключены.

Мне нужно динамически адаптировать javascript, чтобы он отключил каждую конкретную строку каждый раз, когда щелкнул соответствующий флажок, но я действительно не знаю, как ее достичь.

Вот мой код:

 <?php 
for ($i=0;$i<5;$i++)
     {
   ?>
   <tr>
   <td><input id="includeItem<?=$i?>" type="checkbox" onchange="includeMore" name="item<?=$i?>"></td>
   <td><input name="id<?=$i?> style="color:#888;" disabled="disabled"></td>
   <td><input id="formItems<?=$i?>" class="datepicker" name="date<?=$i?>"></td>
   <td><input id="formItems<?=$i?>" name="description<?=$i?>"></td>
   <td><input id="formItems<?=$i?>" name="amount<?=$i?>"></td>
   </tr>
<?php } ?>

Тогда мой javascript выглядит следующим образом:

<script>
    function includeMore()  {
        var $check = $('#includeItem');
            if($('#includeItem').is(':checked')) 
                {
                $('#formItems').attr.('disabled','');
                }
            else {
                $('#formItems').attr.('disabled','disabled');
                }
        }

</script>   
  • 0
    Используйте this указатель
  • 0
    Не могли бы вы уточнить?
Показать ещё 2 комментария
Теги:
input
checkbox

1 ответ

1
Лучший ответ

Сначала вам нужно добавить слушателя изменений событий

var $checkboxes = $( '.class-for-the-input' );

$checkboxes.on( 'change', function ( evt ) {
    //... code
});

Внутри обработчика функции вам нужно получить родительскую строку, найти все входные элементы, которые не равны установленному флажку, и отключить его в зависимости от состояния флажка:

var $this = $( this ), isChecked = this.checked,
    $els = $this.parents( 'tr' ).find( ':input' ).not( $this );

if ( isChecked ) {
    $els.prop( 'disabled', 'disabled' );
} else {
    $els.removeProp( 'disabled' );
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню