Aquí tengo varias casillas de verificación cuyos datos provienen de la base de datos. Quiero que el cuadro de texto permanezca deshabilitado hasta que marque o haga clic en la casilla de verificación. digamos que estos son los datos que provienen de la base de datos, por ejemplo.
$(function() { $('.check').click(function() { if ($(this).is(':checked')) { $('.checks').removeAttr('disabled'); $('.checks').focus(); } else { $('.checks').attr('disabled', 'disabled'); } }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="checkbox" class="check"> Aldrin <input type="text" class="checks" disabled> <input type="checkbox" class="check"> Dafne <input type="text" class="checks" disabled> <input type="checkbox" class="check"> Diane <input type="text" class="checks" disabled>Claro, puede reducir lo que tiene a lo siguiente, usando $(this) para referirse a la casilla de verificación específica que está marcando/desmarcando:
$(function() { $('.check').click(function() { $(this).next().prop('disabled', !$(this).is(':checked')) }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="checkbox" class="check"> Aldrin <input type="text" class="checks" disabled> <input type="checkbox" class="check"> Dafne <input type="text" class="checks" disabled> <input type="checkbox" class="check"> Diane <input type="text" class="checks" disabled> $(function() { $('.check').click(function() { if ($(this).is(':checked')) { $(this).next('.checks').removeAttr('disabled'); $(this).next('.checks').focus(); } else { $(this).next('.checks').attr('disabled', 'disabled'); } }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="checkbox" class="check"> Aldrin <input type="text" class="checks" disabled> <input type="checkbox" class="check"> Dafne <input type="text" class="checks" disabled> <input type="checkbox" class="check"> Diane <input type="text" class="checks" disabled>