Lo que me gustaría que sucediera es que cuando el valor del campo de estado es Pagado , las multas del campo de entrada deberían ser de solo lectura. ¿Cómo lograr esto?
Este es mi formulario:

Este es mi código:
<div class="form-group"> <label for="status" class="col-sm-3 control-label">Status</label> <div class="col-sm-9"> <input type="text" class="form-control" id="status" value = "Paid" name="status" readonly> </div> </div> <div class="form-group"> <label for="fines" class="col-sm-3 control-label">Fines</label> <div class="col-sm-9"> <input type="text" class="form-control" id="fines" name="fines" required> </div> </div>Línea de código Javascript:
<script type = "text/javascript"> $(document).ready (function(){ $('input[type=text][name=status]').change(function() { if (this.value == "Paid") { $("#fines").prop("readonly",true); } else{ $("#fines").prop("readonly",false); } }); }); </script>Al ver que su campo de estado está configurado en solo lectura durante la carga, me imagino que desea activar un evento de cambio al instante.
$(document).ready (function(){ // setup a variable for multi-use var $statusField = $('input[type=text][name=status]'); // watch for changes to the statusField $statusField.change(function() { // simpler check for paid status $('#fines').prop('readonly', this.value === 'Paid'); }); // trigger a change on ready $statusField.change(); });De esta manera, tiene acceso para activar el cambio programáticamente, pero también tiene la capacidad de ver el campo de estado. ¡También he limpiado un poco tu código!
intenta así
if ($(this).val() == "Paid") { $("#fines").attr("readonly",true); } else{ $("#fines").attr("readonly",false); }