He estado buscando en Google y jugando con todas las combinaciones que conozco, pero no puedo hacer que mis casillas de verificación se inicialicen como marcadas.
Ejemplo:
<ul class="object administrator-checkbox-list">
<li v-for="module in modules">
<label v-bind:for="module.id">
<input type="checkbox" v-model="form.modules" v-bind:value="module.id" v-bind:id="module.id">
<span>@{{ module.name }}</span>
</label>
</li>
</ul>
Un ejemplo de los datos de los módulos:
[
{
"id": 1,
"name": "Business",
"checked": true
},
{
"id": 2,
"name": "Business 2",
"checked": false
},
]
¿Qué puedo hacer para establecer inicialmente el estado marcado de las casillas de verificación?
asemejar
Para establecer el estado de la casilla de verificación, debe vincular el modelo v a un valor. La casilla de verificación se marcará si el valor es verdadero. En este caso, está iterando sobre modules
y cada module
tiene un checked
propiedad.
El siguiente código vinculará la casilla de verificación a esa propiedad:
<input type="checkbox" v-model="module.checked" v-bind:id="module.id">
Si desea obtener más información sobre cómo funciona v-model en esta situación, aquí hay un enlace a la documentación sobre el enlace de entrada de formulario.
-
También de los documentos: v-bind:true-value=”a” v-bind:false-value=”b”. En mi caso usé v-bind:true-value=1 v-bind:false-value=0
– McMacerson
11 de noviembre de 2017 a las 13:20
-
La respuesta no es realmente correcta.
v-model
vincula diferentes atributos en diferentes tipos de entrada.v-model
en las casillas de verificación controla suchecked
atributo en lugar devalue
. Vea la respuesta de @ ricardoorellana para un enfoque alternativo.– asologor
21 de enero de 2020 a las 9:27
-
Este
You shouldn't use v-model and v-bind:value on the same element
no es cierto para las casillas de verificación. estoy usando correctamente<input type="checkbox" v-for="item in items" v-model="selectedIDs" v-bind:value="item.id">
dóndeselectedIDs
es una matriz de ID de casillas de verificación marcadas. Por lo tanto, el valor DEBE SER utilizado. ¿Cómo sabría Vue qué valor agregar a la matriz sinv-bind:value
?– Mikep
14 de marzo a las 16:10
-
Tienes razón. He editado la respuesta para eliminar la información incorrecta.
– asemahlé
1 sep a las 23:38
Supongamos que desea pasar un accesorio a un componente secundario y ese accesorio es un booleano que determinará si la casilla de verificación está marcada o no, luego debe pasar el valor booleano al v-bind:checked="booleanValue"
o el camino más corto :checked="booleanValue"
por ejemplo:
<input
id="checkbox"
type="checkbox"
:value="checkboxVal"
:checked="booleanValue"
v-on:input="checkboxVal = $event.target.value"
/>
Eso debería funcionar y la casilla de verificación mostrará la casilla de verificación con su estado booleano actual (si está marcado como verdadero, si no está sin marcar).
-
asi que
v-model
en realidad se une achecked
No avalue
con<input type=checkbox>
? Entonces, ¿cuál es el punto de vincular también al valor en su ejemplo de código?– phil294
8 de noviembre de 2019 a las 9:03
-
El ejemplo dado considera que quieres tener tu
checkbox
como un componente secundario, por lo que no puede usarv-model
simplemente porque desea evitar mutar un accesorio directamente, ya que el valor se sobrescribirá cada vez que se vuelva a renderizar el componente principal.v-model
crea enlaces de datos bidireccionales y modifica la propiedad pasada en el componente secundario– ricardoorellana
8 de noviembre de 2019 a las 15:58
-
¿Es posible vincular
:checked
al resultado de una función y pasarle argumentos? Algo como:checked="method(id)"
?– HMR
28 de febrero de 2020 a las 8:51
-
Sí, eso es válido y posible @HMR
– ricardoorellana
29 de febrero de 2020 a las 0:09
En el modelo v, el valor de la propiedad podría no ser un valor booleano estricto y la casilla de verificación podría no “reconocer” el valor como marcado/sin marcar. Hay una característica interesante en VueJS para hacer la conversión a verdadero o falso:
<input
type="checkbox"
v-model="toggle"
true-value="yes"
false-value="no"
>
-
Genial por cierto!. ¡Gracias!
– Bereket Belete
12 de enero de 2021 a las 18:46
-
Documentación para esto en Vue 2: vuejs.org/v2/guide/forms.html#Checkbox-1 y en Vue 3: v3.vuejs.org/guide/forms.html#checkbox-2
– Flamm
8 de octubre de 2021 a las 9:04
tirosenga
Tenía requisitos similares pero no quería usar v-model
tener el estado en el componente principal. Entonces conseguí que esto funcionara:
<input
type="checkbox"
:checked="checked"
@input="checked = $event.target.checked"
/>
Para transmitir el valor del padre, hice un pequeño cambio en esto y funciona.
<input
type="checkbox"
:checked="aPropFrom"
@input="$emit('update:aPropFrom', $event.target.checked)"
/>
Experimenté este problema y no pude encontrar una solución durante unas horas, hasta que me di cuenta de que tenía incorrectamente prevented
eventos nativos ocurran con:
<input type="checkbox" @click.prevent="toggleConfirmedStatus(render.uuid)"
:checked="confirmed.indexOf(render.uuid) > -1"
:value="render.uuid"
/>
la eliminación de la .prevent
desde el @click
el controlador solucionó mi problema.
muhammad ahmad
<input v-if = "module.checked == true" checked type="checkbox" >
<input v-else-if = "module.checked == false" type="checkbox" >
He resuelto esto con el uso de v-if y v-else-if
Bitrevo
Utilizo tanto la entrada oculta como la casilla de verificación para garantizar que se envíe 0 o 1 al formulario. Asegúrese de que el nombre del campo sea el mismo para que solo se envíe una entrada al servidor.
<input type="hidden" :name="fieldName" value="0">
<input type="checkbox" :name="fieldName" value="1" :checked="checked">
cual es el valor de
form.modules
?– rogeriolino
6 de diciembre de 2016 a las 17:28