Bạn có thể sử dụng onclick
trình xử lý sự kiện để lấy giá trị đầu vào cho trường văn bản. Đảm bảo bạn cung cấp cho trường một id
thuộc tính duy nhất để bạn có thể tham khảo nó một cách an toàn thông qua document.getElementById()
:
Nếu bạn muốn thêm động các phần tử, bạn nên có một vùng chứa để đặt chúng. Ví dụ, a <div id="container">
. Tạo các phần tử mới bằng cách document.createElement()
sử dụng và dùng appendChild()
để nối từng phần tử đó vào vùng chứa. Bạn có thể quan tâm đến việc xuất ra một name
thuộc tính có ý nghĩa (ví dụ: name="member"+i
cho từng thuộc tính được tạo động <input>
nếu chúng được gửi dưới dạng biểu mẫu.
Lưu ý rằng bạn cũng có thể tạo <br/>
các phần tử với document.createElement('br')
. Nếu bạn chỉ muốn xuất một số văn bản, bạn có thể sử dụng document.createTextNode()
thay thế.
Ngoài ra, nếu bạn muốn xóa vùng chứa mỗi khi nó sắp có dân cư, bạn có thể sử dụng hasChildNodes()
và removeChild()
cùng nhau.
<html>
<head>
<script type='text/javascript'>
function addFields(){
// Number of inputs to create
var number = document.getElementById("member").value;
// Container <div> where dynamic content will be placed
var container = document.getElementById("container");
// Clear previous contents of the container
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (i=0;i<number;i++){
// Append a node with a random text
container.appendChild(document.createTextNode("Member " + (i+1)));
// Create an <input> element, set its type and name attributes
var input = document.createElement("input");
input.type = "text";
input.name = "member" + i;
container.appendChild(input);
// Append a line break
container.appendChild(document.createElement("br"));
}
}
</script>
</head>
<body>
<input type="text" id="member" name="member" value="">Number of members: (max. 10)<br />
<a href="#" id="filldetails" onclick="addFields()">Fill Details</a>
<div id="container"/>
</body>
</html>
Xem một mẫu hoạt động trong JSFiddle này .
Uncaught TypeError: Cannot call method 'appendChild' of undefined