2010-06-24 2 views
0

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

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

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

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

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

ответ

0

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, где новый движок селектора не будет нарушать порядок, чтобы ваш код действительно работал должным образом.

+0

«кстати, эта ошибка была исправлена ​​в mootools 1.3" - На данный момент да. –

+0

Блестящий, спасибо – Ashley

Смежные вопросы