2010-08-18 44 views
36

Tôi muốn có thể tìm thấy loại nội dung nào đó trên trang bằng javascript. Vấn đề là như sau: Tôi cần kiểm tra xem một khu vực cụ thể có là hộp kiểm/nút radio/hoặc trường văn bản hay không.Tìm 'loại' của yếu tố đầu vào

Nếu hộp kiểm hoặc nút radio của nó không có chiều dài (không có chuỗi trong đó), nếu không trường văn bản tôi cần kiểm tra xem nó có chứa ký tự hay không. Trang được tạo tự động nên đôi khi một hộp kiểm có thể được hiển thị lần khác một trường văn bản.

Vì vậy, suy nghĩ của tôi là tìm loại đầu vào, sau đó xác định việc cần làm.

Mọi đề xuất sẽ được đánh giá cao.

Xin cảm ơn trước.

+1

Không phải là một vấn đề lớn, nhưng sự phân biệt cẩn thận hơn sẽ ở đây: "Loại phần tử đầu vào" khác với "Loại biến" hoặc "một số yếu tố khác trên trang". –

Trả lời

52

Kiểm tra thuộc tính type. Điều đó có đủ không?

+5

sử dụng nó như element.type, nó sẽ trả về textarea nó phần tử là một vùng văn bản và vân vân. –

19

Nếu bạn muốn kiểm tra các loại đầu vào trong hình thức, sử dụng đoạn mã sau:

<script> 
    function getFind(obj) { 
    for (i = 0; i < obj.childNodes.length; i++) { 
     if (obj.childNodes[i].tagName == "INPUT") { 
      if (obj.childNodes[i].type == "text") { 
       alert("this is Text Box.") 
      } 
      if (obj.childNodes[i].type == "checkbox") { 
       alert("this is CheckBox.") 
      } 
      if (obj.childNodes[i].type == "radio") { 
       alert("this is Radio.") 
      } 
     } 
     if (obj.childNodes[i].tagName == "SELECT") { 
      alert("this is Select") 
     } 
    } 
} 
</script>  

<script>  
    getFind(document.myform); 
</script> 
+1

Bạn không phải sử dụng những nhận xét đó nữa: http://dorward.me.uk/www/comments-cdata/ –

3

Nếu bạn đang sử dụng jQuery, bạn có thể dễ dàng kiểm tra kiểu của bất kỳ yếu tố.

function(elementID){  
    var type = $(elementId).attr('type'); 
    if(type == "text") //inputBox 
    console.log("input text" + $(elementId).val().size()); 
    } 

tương tự bạn có thể kiểm tra các loại khác và thực hiện hành động thích hợp.

+9

Hoặc, nếu bạn sử dụng Javascript, bạn có thể viết 'document.getElementById (elementId) .type'. Tôi không thấy được lợi ích mà jQuery đưa ra trong trường hợp này. – troelskn

+0

Đây là hàm (có nghĩa là trên không), theo kiểu không phải jQuery (ví dụ: không phải '.getType()', không có tên hàm và không có gì hơn '$ (phần tử) [0] .type' (giả định bạn allready đã có đối tượng jQuery) – Martijn

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