Mootools - получить первый ввод формы, выбрать элемент etc - PullRequest
0 голосов
/ 24 июня 2010

Мне нужно получить первый элемент из формы, может быть выбор, текст, радио и т. Д. Я могу получить все элементы, используя следующее:

$('myformcontainer').getElement('form').getElements('select,input[type=text]');

И это возвращает все мои элементы формы, однако проблема в том, что элементы организованы по типу тега (в этом примере; элементы выбора будут перед любым текстовым полем, даже если текстовое поле будет первым).

Как мне отсортировать этот массив так, чтобы первый элемент в форме был первым? Или лучший способ получить их?

Кстати, я пробовал getFirst - он всегда возвращает ноль.

1 Ответ

0 голосов
/ 24 июня 2010

http://www.jsfiddle.net/EtGKE/

при разметке:

<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>

с кодом:

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");
});

это даст вам естественный порядок элементов в виде массиваиспользуйте allElls [0] для ссылки на первый.

, между прочим, эта ошибка была исправлена ​​в mootools 1.3, где новый движок селектора Slick не нарушает порядок, поэтому ваш код будет работать, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...