2010-08-18 99 views
36

我想使用javascript在頁面上找到某種類型的東西。 問題如下: 我需要檢查一個特定的區域是複選框/單選按鈕/還是文本框。查找輸入元素的「類型」

如果它是一個複選框或單選按鈕,它沒有長度(沒有字符串),否則如果它的文本框我需要檢查它是否包含字符。該頁面是動態創建的,所以有時複選框可能會在文本字段的其他時間顯示。

所以我的想法是找到輸入的類型,然後確定要做什麼。

任何建議,將不勝感激。

在此先感謝。

+1

不是什麼大不了的,但更細緻的區別在於:「輸入元素的類型」與「變量的類型」或「頁面上某些其他元素的類型」大不相同。 – 2010-08-18 10:02:25

回答

52

檢查type屬性。這足夠嗎?

+5

使用它像element.type,它會返回textarea它的元素是一個textarea等等。 – 2010-08-18 10:00:33

19

如果你想表單中檢查輸入的類型,使用下面的代碼:如果您在使用jQuery,你可以很容易地檢查任何元素的類型

<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

您不必再使用這些註釋:http://dorward.me.uk/www/comments-cdata/ – 2010-08-18 10:19:16

3

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

同樣,您可以檢查其他類型並採取相應的措施。

+9

或者,如果您使用Javascript,則可以編寫'document.getElementById(elementId).type'。我沒有看到jQuery在這種情況下給出的好處。 – troelskn 2010-08-18 13:41:14

+0

這是一個函數(意味着開銷),在非jQuery風格(例如不是'.getType()')中,沒有函數名並且沒有任何東西超過'$(element)[0] .type'(假設你已經有了jQuery對象) – Martijn 2016-01-05 15:36:56