我正在尝试在Javascript中提出一个泛型函数,它可以遍历表单并根据其类型清除表单的任何元素。
为了完成这项工作,我想知道我正在处理什么样的表单元素,包括但不仅仅是选择,输入文本,文本区域,输入按钮....
那么,我如何区分这些元素,以便以适当的方式处理每种类型?
答案 0 :(得分:1)
这样的事情应该让你开始
$('form :input').each(function(i, el){
var type = el.tagName;
});
:input
选择器基本上选择所有表单控件。
没有jQuery:
var elem = document.getElementById('theform').elements;
for(var i = 0; i < elem.length; i++)
{
console.log(elem[i].type);
}
答案 1 :(得分:1)
您应该考虑使用reset
按钮。
像这样。
<form action="">
<input type="text">
<input type="email">
<input type="number">
<input type="radio">
<input type="checkbox">
<textarea></textarea>
<select>
<option value="">None</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="reset">
</form>
它干净,快速,与IE 2兼容。
<强> [编辑] 强>
如果您需要通过代码触发重置,则可以使用相同的formElement.reset()
。这是reference
答案 2 :(得分:1)
您可以使用type
属性,该属性是根据HTML5 CR和浏览器实践为控件定义的,即使对于不能将type
作为HTML属性的控件也是如此。例如,对于select
元素,如果不存在select-one
属性,则属性值为multiple
,否则为select-multiple
字符串。
因此,如果您遍历form
元素的所有后代,您将识别type
属性中的控件(表单字段);对于其他元素,type
通常是未定义的。
答案 3 :(得分:0)
您可以使用tagName。使用jquery,您可以使用以下代码
$('form').children().each(function()
{
var elementType=$(this).prop('tagName');
});
使用简单的Javascript element.tagName
即可。