是否有一种"官方"的方式来获得表单的所有输入元素,包括那些使用新的HTML5 'form'属性的表单之外的输入元素,或者我必须使一些自定义选择器的联盟?我所说的官方是指提供的标准习语或jQuery。谢谢。
编辑:参见这个例子http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_input_form
EDIT2:我最终这样做了:$("#formId:input,:input[form='formId']")
是的,有一个方法。
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/
可以将后代选择器和属性选择器组合使用:
var $inputs = $("form :input, :input[form]");
如果您指的是新的form="myform"
属性,您现在可以添加到元素中,并希望根据该属性选择元素,您可以执行以下操作:
$('[form="myform"]');
使用属性选择器
Try
var $my_input_fields = $(":input");