2010-06-05 62 views
13

JS đơn giản này không thể đặt giá trị của "para". Tôi đoán getElementByName không hoạt động. Nhưng tại sao?JavaScript getElementByName không hoạt động

<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, xin vui lòng [định dạng mã của bạn đúng cách] (http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks), không sử dụng backticks theo cách bạn đã làm. –

+0

có thể trùng lặp của [getElementsByName trong IE7] (http://stackoverflow.com/questions/278719/getelementsbyname-in-ie7) –

+0

Cảm ơn bạn đã định dạng, tôi nhận được nó – Philip007

Trả lời

29

Đó là getElementsByName. Lưu ý số nhiều. Nó trả về một NodeList giống như mảng của các phần tử với thuộc tính name đó.

6

getElementsByName tồn tại, trả về tập hợp các phần tử. Nếu bạn định tìm thấy chỉ một:

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

Chỉnh sửa: a, HTML ở đó (không thấy trước khi chỉnh sửa). Không có phần tử 'hi' trong HTML, có thể ở định dạng XML nào đó ...

+0

Các bạn rock. getElementsByName ("hi") [0] hoạt động tốt! Cảm ơn bạn. Bây giờ tôi chỉ biết getElementById không phải là số nhiều vì id là duy nhất. – Philip007

+2

'hi' không phải là tên thẻ. Nó chỉ là một thuộc tính tên cho input'para 'i đặt trong scirpt – Philip007

+0

Hehe, lỗi của tôi, nhầm lẫn nó với getElementsByTagName() :) – Wrikken

2

không getElementByName nhưng getElementsByName và nó trả về mảng.

<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

Ngoài ra, tôi thấy rằng loại tài liệu đó phải được khai báo để làm cho getelementsbyname hoạt động.

<!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

bạn có thể giải thích mã này một chút để cải thiện câu trả lời của bạn và để giúp người đọc trong tương lai? – WhatsThePoint

Các vấn đề liên quan