2009-06-16 22 views
21

Làm cách nào để bạn tạo trường ẩn trong JavaScript thành một biểu mẫu cụ thể?Tạo trường ẩn trong JavaScript

<html> 
    <head> 
     <script type="text/javascript"> 
     var a =10; 
function test() { 
     if (a ==10) { 
     // ... Here i need to create some hidden field for form named = chells 
     } 
} 
     </script> 
    </head> 
    <body > 
     <form id="chells" name="formsdsd"> 
     <INPUT TYPE=BUTTON OnClick="test();"> 
    </form> 
    </body> 
    </html> 
+4

Vì y kịch bản của chúng tôi đang chạy trước khi biểu mẫu tồn tại - điều bạn muốn là không thể. Bạn có thể viết nó trong một hàm và gán nó cho sự kiện onload. HTML của bạn cũng có một số lỗi, xem http://validator.w3.org/ – Quentin

Trả lời

74
var input = document.createElement("input"); 

input.setAttribute("type", "hidden"); 

input.setAttribute("name", "name_you_want"); 

input.setAttribute("value", "value_you_want"); 

//append to form element that you want . 
document.getElementById("chells").appendChild(input); 
+1

Bộ sưu tập biểu mẫu phù hợp hơn getElementById cho một biểu mẫu có tên và tất cả điều này phụ thuộc vào thứ tự thực thi của JS so với tải DOM, nhưng về cơ bản là cách tiếp cận đúng – annakata

+0

Nhưng tôi chỉ cố gắng sử dụng phần tử biểu mẫu của nó là null – joe

+0

Như David đã chỉ ra, hãy chắc chắn rằng bạn đang thực hiện điều này * sau * DOM đã tải. Hãy thử sử dụng sự kiện onload cho người mới bắt đầu. – annakata

17

Bạn có thể sử dụng jquery để tạo yếu tố trên bay

$('#form').append('<input type="hidden" name="fieldname" value="fieldvalue" />'); 

hay cách khác

$('<input>').attr({ 
    type: 'hidden', 
    id: 'fieldId', 
    name: 'fieldname' 
}).appendTo('form') 
3

tôi đã tìm thấy để làm việc này:

var element1 = document.createElement("input"); 
element1.type = "hidden"; 
element1.value = "10"; 
element1.name = "a"; 
document.getElementById("chells").appendChild(element1); 
Các vấn đề liên quan