JavaScript getElementByName не работает
Этот простой JS не может установить значение "para". Я думаю, getElementByName не работает. Но почему?
<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" />
5 ответов
Решение
Это getElementsByName
, Обратите внимание на множественное число. Он возвращает массив, как NodeList элементов с этим name
приписывать.
getElementsByName
существует, который возвращает коллекцию элементов. Если вы планируете найти только один:
document.getElementsByName("hi")[0].setAttribute("value", "my value is high");
Изменить: а, HTML там (не видел это до редактирования). В HTML нет элемента hi, возможно, в каком-то XML-формате...
Не getElementByName
но getElementsByName
и возвращает массив.
<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>
Кроме того, я считаю, что тип документа должен быть объявлен, чтобы заставить работать getelementsbyname.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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>