imprimir - Javascript y solo una casilla de verificación-undefined
imprimir directamente en la impresora javascript (8)
Probablemente iteraría en document.checks.elements, buscando .type == ''checkbox''.
for (i = 0; i < document.checks.user.length; i++) //for all check boxes
{
if (document.checks.user[i].checked == true )
{
document.checks.submit();
return 0;
}
}
<body>
<form action="" method=POST name="checks" ID="Form2">
I have a bike:
<input type="checkbox" name="user" value="Bike" ID="Checkbox1">
<br>
<br>
</form>
<input type="button" value="Delete"
class="btn" onclick="sub_delete()"
onmouseover="hov(this, ''btn btnhov'')" onmouseout="hov(this, ''btn'')"
id="Button1" name="Button1"
/>
</body>
como probablemente ya sabe cuando solo queda una casilla de verificación document.checks.user.length = undefined. ¿Cuál es la forma más eficaz de asegurarse de que cuando solo hay una casilla de verificación, se eliminará? Estaba pensando solo en agregarlo como una declaración if independiente antes de la declaración if aquí ... cualquier sugerencia.
Gracias.
Use una variable de control de bucle y establézcala en 1 si la longitud no está definida ...
var len = document.checks.user.length;
if(len == undefined) len = 1;
for (i = 0; i < len; i++) //for all check boxes
Atentamente...
jQuery es tu amigo:
$("input[type=''checkbox'']").attr(''checked'', false);
(... si jQuery está disponible para ti?)
if (document.getElementById(''Checkbox1'').checked) { /* do something */ }
si desea hacer un bucle de varias casillas, puede hacer un bucle en los campos de entrada de su formulario, como:
var formNodes = document.checks.getElementsByTagName(''input'');
for (var i=0;i<formNodes.length;i++) {
/* do something with the name/value/id or checked-state of formNodes[i] */
}
if(document.checks.user[0]) {
//it''s an array
}
else {
//it''s a single element
}
Su pregunta es algo confusa, ya que su javascript obviamente tendría que estar dentro de una función llamada ''sub_delete'' para ser de alguna utilidad ... alguien con el gran poder de editar preguntas podría mejorar la pregunta al hacerlo más claro ...
Por lo tanto, el primer problema que tiene que resolver es que para una casilla de verificación única, con un nombre de usuario ''usuario'', no es una matriz, y por lo tanto no tiene una longitud definida, pero también si intenta acceder a ella como una matriz. las cosas se confunden ... una reescritura completa de su función javascript podría verse así:
function sub_delete{
if (typeof document.checks.user.length === ''undefined'') {
/*then there is just one checkbox with the name ''user'' no array*/
if (document.checks.user.checked == true )
{
document.checks.submit();
return 0;
}
}else{
/*then there is several checkboxs with the name ''user'' making an array*/
for(var i = 0, max = document.checks.user.length; i < max; i++){
if (document.checks.user[i].checked == true )
{
document.checks.submit();
return 0;
}
}
}
}//sub_delete end
HTH, -FT
Yo también enfrento el mismo problema con un total de 5 casillas de verificación, de las cuales 4 están deshabilitadas y 1 está habilitado. Ahora el checkboxId.length no está definido, por lo que la única opción que podría pensar es if (checkboxId.length == undefined) {checkboxId.checked = true & submith the form}.
Es muy simple, solo crea una etiqueta de entrada oculta con el mismo nombre que la etiqueta de entrada existente.
Por ejemplo:
<input type="checkbox" name="user" value="Bike" ID="Checkbox1">
<input type="hidden" name="user" value=""/>