Estoy usando múltiples casillas de verificación para alguna acción. Mi requisito es obtener on si la casilla está marcada y off cuando no está marcada. Pero obtengo el valor como on si selecciono / desactivo la casilla de verificación.

<label class="cont">
   <input type="checkbox" name="listingstatus" id="listingstatus<?php echo $doc->module_video_id; ?>" onchange="listingStatus('<?php echo $doc->module_video_id; ?>')">
   <span class="checkmark"></span>
</label>


function listingStatus(module_video_id)
{
  var a = $('#listingstatus'+module_video_id).val();
  console.log(a);
}
0
sooraj s pillai 8 sep. 2018 a las 08:28

4 respuestas

La mejor respuesta

Pruebe is(":checked") con la operadora ternaria:

var a = $('#listingstatus'+module_video_id).is(":checked") ? 'on' : 'off';
3
user2575725user2575725 8 sep. 2018 a las 05:33

Usando Javascript simple vainilla irías con algo como esto:

btn.addEventListener('click', () => {
  const checkedInputs = Array.from(document.querySelectorAll('input:checked'));
  const values = [];
  checkedInputs.forEach((checkbox) => {
    values.push(checkbox.value);
  })
  console.log(values);
})
<input type="checkbox" value="foo" />
<input type="checkbox" value="bar" />
<input type="checkbox" value="baz" />
<input type="checkbox" value="wtf" />
<button type="button" id="btn">Console.log checked values</button>

Si necesita algo diferente, intente ser más claro en lo que está pidiendo.

0
connexo 8 sep. 2018 a las 05:33

Use .checked en lugar de .value:

 <input type="checkbox" id="chkBox" onchange="foo()">

<script>
function listingStatus()
{
  var isChecked = document.getElementById('chkBox').checked;
  console.log(isChecked);
}
</script>
0
H.P. 8 sep. 2018 a las 05:38

Puede verificar si la casilla de verificación está marcada o no mediante el uso del siguiente script

function listingStatus(module_video_id)
    {
        if ($('#listingstatus' + module_video_id).prop('checked')) {
            console.log('checked do stuff here');
        } else {
            console.log('not checked');
        }
    }
0
Kittu 8 sep. 2018 a las 05:42