Javascript Mootools-获取表单的第一个输入,选择etc项

Javascript Mootools-获取表单的第一个输入,选择etc项,javascript,mootools,Javascript,Mootools,我需要从表单中获取第一个元素,可以是select、text、radio等。我可以使用以下方法获取所有元素: $('myformcontainer').getElement('form').getElements('select,input[type=text]'); 这将返回所有我的表单元素,但问题是在本例中,项目是按标记类型组织的;选择项将位于任何文本字段之前,即使文本字段位于第一位 如何对该数组进行排序,使表单中的第一项为第一项?或者,一种更好的方法 顺便说一句,我试过getFirst-它

我需要从表单中获取第一个元素,可以是select、text、radio等。我可以使用以下方法获取所有元素:

$('myformcontainer').getElement('form').getElements('select,input[type=text]');
这将返回所有我的表单元素,但问题是在本例中,项目是按标记类型组织的;选择项将位于任何文本字段之前,即使文本字段位于第一位

如何对该数组进行排序,使表单中的第一项为第一项?或者,一种更好的方法

顺便说一句,我试过getFirst-它总是返回null

关于以下内容的标记:

<form id="myform">
    <input type="text" value="bar" name="bar" />
    <select name="sel">
        <option>foo</option>
    </select>
    <input type="text" value="foo" name="foo" />
    <input type="password" />
</form>
这将获得项目作为数组的自然顺序,使用allElls[0]引用第一个


顺便说一句,这个错误已经在mootools 1.3中修复,新的slick选择器引擎不会破坏顺序,因此您的代码将实际按预期工作。

顺便说一句,这个错误已经在mootools 1.3中修复-现在,是的。
var allEls = document.id('myform').getChildren().filter(function(el) {
    var tag = el.get("tag"), type = el.get("type");
    return tag == "select" || (tag == "input" && type == "text");
});