esto suena como una pregunta duplicada formulada hace 9 años, pero... necesito establecer/asignar un valor a mi casilla de verificación. Género de cosas simples:
<div> <label for="gender"><b>Gender:</b></label> <input type="radio" name="gender" id="male" value="Male" required> Male <input type="radio" name="gender" id="female" value="Female"> Female </div> <!-- #3 --> <div> <label for="category"><b>Category</b></label> <input type="text" name="category" id="category" required> </div>
Me las arreglé para sacar los datos (gracias chicos), por lo que está almacenado en localstorage; el archivo json es =
data = [ 'Miss', 'Female', 'Oversea' , '2001-06-10', 'sasha@gmail.com' , '39393939'] name = "Sasha"
ahora necesito recuperar el archivo en el formulario de entrada anterior, editarlo y guardarlo. Necesito ayuda para asignar el valor del archivo Json a la entrada html. No tengo problema con los otros campos; sólo la casilla de verificación. Recurrí a hacer una declaración if else;
function onEdit(td) { //obtain row index selectedRow = td.parentElement.parentElement; // Obtain name value (key) var name = selectedRow.cells[1].innerHTML; // goto local storage and get the data let data = JSON.parse(localStorage.getItem(name)); document.getElementById("salutation").value = data[0]; document.getElementById("name").value = name; // // why why does this does not work //document.getElementById("gender").value = data[1]; // document.querySelector('input[name="gender"]:checked').value = test; var test = data[1]; if ((test) == "Male" ) { document.getElementById('male').value = True; document.getElementById('female').value = False; } else { document.getElementById('male').value = False; document.getElementById('female').value = True; }; document.getElementById("category").value = data[2]; document.getElementById("leaddob").value = data[3]; document.getElementById("leademail").value = data[4]; document.getElementById("leadtel").value = data[5]; }
pero las casillas de verificación marcan, pero cuando guardo los datos, se queda en blanco.
¡Ayuda!
¡no utilice marcado!
const myForm = document.querySelector('#my-form') , data = { gender : 'Male' } ; // init myForm.gender.value = data.gender // set Male checked, set Female unchecked // get value myForm.onsubmit = e => { e.preventDefault() // disable submit for testing console.clear() console.log( 'myForm.gender =', myForm.gender.value ) }
<form id="my-form"> <fieldset> <legend>Gender</legend> <label> <input type="radio" name="gender" value="Male" > Male </label> <!--label tag is around the imput --> <label> <input type="radio" name="gender" value="Female"> Female</label> <!-- any click on text part set box cheked --> </fieldset> <button type="submit"> submit </button> </form>
El elemento de entrada tiene su propio mecanismo dentro del formulario