Uso de arreglo de php en javascript

Espero espero me puedas ayudar con el problema que tengo, tal vez sea muy sencillo pero yo estoy empezando con esto y me trabo con facilidad.
Tengo un arreglo en php donde cada caja de texto tiene por default la palabra "No necesario" pero necesito que al darle click en el check box me quite lala frace que tienen la caja de texto, el código que tengo es siguiente:
Código PHP:
<form name="formName">
<p>
  <input type="checkbox" name="c1[]" onclick="funcionBorrarTexto();" />
  <input type="text" name="input1[]" value="No necesario">
  </p>
<p>
  <input type="checkbox" name="c1[]" onclick="funcionBorrarTexto();" />
  <input type="text" name="input1[]" value="No necesario">
  </p>
<p>
  <input type="checkbox" name="c1[]" onclick="funcionBorrarTexto();" />
  <input type="text" name="input1[]" value="No necesario">
  </p>
<p>
  <input type="checkbox" name="c1[]" onclick="funcionBorrarTexto();" />
  <input type="text" name="input1[]" value="No necesario">
  </p>
</form> 
el codigo java que tengo es el siguiente:
Código PHP:
<script language="javascript">
function funcionBorrarTexto(){
  if(document.formName.c1[].checked){
    document.formName.input1[].value="";
  }else{
    document.formName.input1[].value="No necesario";
  }
}
</script>
¿Me podrías decir que estoy haciendo mal por favor? O alguna idea de como hacer en verdad lo agradecería.
Ya estoy desesperada llevo un buen de tiempo con esto!

1 Respuesta

Respuesta
1
Por lo que parece todos los checkbox tienen el mismo nombre (c1) y los campos también (input1) (aunque no entiendo lo de los corchetes vacíos). Eso no es un error, pero cuando cojas el valor por nombre de los campos, recibirás un array con todos los valores, ya que son varios campos con el mismo nombre. De la misma manera estás comprobando el valor del checkbox así -> if(document. FormName.c1[]. Checked) y no funcionará con varios checkbox llamados igual. Si necesitas esos nombres para algo, se puede usar el atributo id para identificarlos y permitir que la función limpie el campo necesario. Sería algo así:
<p>
  <input type="checkbox" name="c1[]" id="c1"onclick="funcionBorrarTexto(this,'i1');" />
  <input type="text" name="input1[]" id="i1" value="No necesario">
  </p>
<p>
  <input type="checkbox" name="c1[]" id="c2"onclick="funcionBorrarTexto(this,'i2');" />
  <input type="text" name="input1[]" id="i2" value="No necesario">
  </p>
...
... 
</form>
<script language="javascript">
function funcionBorrarTexto(checkbox,field){
  if(checkbox.checked){
    document.getElementById(field).value="";
  }else{
    document.getElementById(field).value="No necesario";
  }
}
</script>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas