有没有办法选择表单的所有输入元素,包括它以外的那些?

时间:2011-12-16 13:47:41

标签: javascript jquery html forms

是否有“官方”方式来获取表单的所有输入元素,包括表单之外的那些使用输入元素的新HTML5'表单'属性,或者我是否必须制作一些自定义选择器的联合?官方我指的是提供的标准习语或jQuery。感谢。

编辑:请参阅此示例http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_input_form

EDIT2:我最终这样做了:$(“#formId:input,:input [form ='formId']​​”)

4 个答案:

答案 0 :(得分:5)

是的,有办法。

form.elements集合包含所有表单控件 - 包括表单内的控件以及通过form属性与之关联的表单控件。

因此,只需获取对表单的引用,然后检索.elements属性:

var form = document.getElementById( 'form1' );
var allFormControls = form.elements;

现场演示: http://jsfiddle.net/bsFcf/

如果要将所有表单控件放在jQuery对象中,我建议这样做:

$( $( '#form1' )[0].elements )

现场演示: http://jsfiddle.net/bsFcf/1/

答案 1 :(得分:4)

您可以合并descendant selectorhas attribute selector

var $inputs = $("form :input, :input[form]");

答案 2 :(得分:2)

如果您引用新的form="myform"属性,现在可以添加到元素,并希望根据该元素选择元素,you can do the following

$('[form="myform"]');

使用attribute selector

答案 3 :(得分:0)

尝试

var $my_input_fields = $(":input");