cuadro de texto de actualización basado en selección de checkbox jquery

Quiero lograr lo siguiente con Jquery

  • Hay varios viajes y cada viaje tiene una checkbox y un cuadro de texto.
  • Siempre que se marque la checkbox, el valor en el cuadro de texto correspondiente a esa checkbox se debe actualizar a “1”.
  • Siempre que el cliente escriba en el cuadro de texto, se marcará la casilla

    Trip 1 sadssad  
    Trip 2 sadsassad

JQUERY como

 $(function () { $("input[type=checkbox]").on('click', function () { $(this).next().val($(this).is(':checked') ? '1' : '0'); }); $("input[type=text]").on('keyup', function () { if ($(this).val()) { $(this).prev().prop('checked', true); } else { $(this).prev().prop('checked', false); } }); }); 

Pero esto no funciona y cuando uso JSF Tag tampoco funciona.

Necesita usar nextAll y prevAll (junto con el first pseudo selector) ya que tiene anclas entre su checkbox y el cuadro de texto.

También cambiaría el evento click para change

 $(function () { $("input[type=checkbox]").on('change', function () { $(this).nextAll('.ckval:first').val($(this).is(':checked') ? '1' : '0'); }); $("input[type=text]").on('keyup', function () { if ($(this).val()) { $(this).prevAll('.checkvaloare:first').prop('checked', true); } else { $(this).prevAll('.checkvaloare:first').prop('checked', false); } }); }); 

Ejemplo

next() solo obtiene el siguiente elemento hermano. En su caso, el siguiente elemento hermano después de la checkbox son las tags. Hay dos juegos de tags antes de su entrada deseada, por lo que funciona después de 3 ‘next ()’ s. Por supuesto que no es muy bonito usar 3 nexts y se rompería fácilmente si alguna vez añadiste otro elemento allí.

utilizar

  nextAll('.ckval:first') 

y encontrará la siguiente entrada de ckval en lugar del siguiente elemento.