2010-08-18 152 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