2010-06-05 21 views
13

Este simple JS no puede establecer el valor de "para". Supongo que getElementByName no funciona. ¿Pero por qué?JavaScript getElementByName no funciona

<script> 
function fn() 
{ 
    document.getElementById("para").setAttribute("name","hi"); 
    document.getElementByName("hi").setAttribute("value","my value is high"); 
} 
</script> 

HTML:

<input type="button" onClick="fn()" value="click me"> 
<input id="para" type="text" /> 
+0

Phil, por favor [formatear su código correctamente] (http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks), no use los palos de atrás como lo hizo. –

+0

posible duplicado de [getElementsByName en IE7] (http://stackoverflow.com/questions/278719/getelementsbyname-in-ie7) –

+0

Gracias por el formateo, lo entiendo – Philip007

Respuesta

29

Es getElementsByName. Tenga en cuenta el plural. Devuelve un NodeList de elementos similar a una matriz con ese atributo name.

6

getElementsByName existe, que devuelve una colección de los elementos. Si planea encontrar solo uno:

document.getElementsByName("hi")[0].setAttribute("value", "my value is high"); 

Editar: a, HTML allí (no lo vi antes de la edición). Ningún elemento 'hi' en HTML, posiblemente en algún formato XML, existe ...

+0

Ustedes rockeros. getElementsByName ("hola") [0] funciona muy bien! Gracias. Ahora sé que getElementById no es plural ya que id es único. – Philip007

+2

'hi' no es un nombre de etiqueta. es solo un atributo de nombre para input'para 'configuré en el scirpt – Philip007

+0

Hehe, mi culpa, lo confundí con getElementsByTagName() :) – Wrikken

2

no getElementByName pero getElementsByName, y devuelve array.

<html> 
<head> 
    <script language="javascript"> 
     function fn() { 
      document.getElementById("para").setAttribute("name","hi"); 
      x = document.getElementsByName("hi"); 
      x[0].setAttribute("value","my value is high"); 
     } 
    </script> 
</head> 
<body onload="fn()"> 
    <input type="text" id="para" /> 
</body> 
</html> 
1

Además, encuentro que el tipo de documento debe declararse para que getelementsbyname funcione.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

-1
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 

<script> 
$(document).ready(function(){ 
$("#insert_form").on('submit',function(event){ 
    event.preventDefault(); 

var d_name = $("#d_name").val(); 
var d_gender = $("#d_gender").val(); 
var d_address = $("#d_address").val(); 
var d_mobile = $("#d_mobile").val(); 
var d_specialization = $("#d_specialization").val(); 
var d_charge = $("#d_charge").val(); 
var date = $("#date").val(); 


// Returns successful data submission message when the entered information is stored in database. 
var dataString = 'd_name1='+d_name + '&d_gender1='+d_gender + '&d_address1='+ d_address + '&d_mobile1='+ d_mobile + '&d_specialization1='+ d_specialization + '&d_charge1='+ d_charge + '&date1='+ date ; 


if(dataString=='') 
{ 
alert("Please Fill All Fields"); 
} 
else 
{ 
// AJAX Code To Submit Form. 
$.ajax({ 
type: "POST", 
url: "<?php echo base_url('predefined/create_adddoctor');?>", 
data:dataString, 
cache: false, 
success: function(result){ 
alert('Doctor Added Successfully Thankyou'); 
window.location.href="<?php echo base_url('predefined/adddoctor');?>"; 
} 
}); 
} 
return false; 
}); 
}); 
</script> 
+0

¿podría explicar este código un poco para mejorar su respuesta y ayudar a futuros lectores? – WhatsThePoint