Első üres szövegmező aktiválása a formon

Ha formokkal dolgozunk, általában szokás mondjuk onLoad-kor rátenni a focust valamelyik mezőre, ezzel is segítve a kitöltést. Prototypeban van gyárilag Form.focusFirstElemet(), az viszont aktiválja a már kitöltött mezőt is + checkboxra, radiobuttonra is rááll. Készítettem ezért egy új metódust a Form osztálynak, ami megoldja a problémát.

Object.extend(Form, {
 focusFirstEmpty: function(formElm) {
 	$A(formElm.getInputs()).each(function(elm) {
 		if(!$(elm).hasClassName('readOnlyInput')
 			&& $F(elm) == ''
 			&& (Element.readAttribute(elm, 'type') == 'text'
 				|| Element.readAttribute(elm, 'type') == 'password'
 				|| Element.readAttribute(elm, 'type') == 'file'
 				|| elm.tagName == 'TEXTAREA')) {
 			Field.focus(elm);
 			throw $break;
 		}
 	});
 }
});

Használat:

Event.observe(window, 'load', function() {
 Form.focusFirstEmpty($('myForm'));
});

(Egy form element azonosítót vár, utána pedig annyit csinál, hogy összeszedi a mezőket egy tömmbe, végigmegy rajtuk, majd az első, amelyik nem readonly, üres illetve text, password, file vagy texarea típusú az megkapja a focust.)

A bejegyzés kategóriája: Nincs kategorizálva
Kiemelt szavak: , .
Közvetlen link.

Első üres szövegmező aktiválása a formon bejegyzéshez 3 hozzászólás

  1. Benjamin hozzászólása:

    Sztem ez valtozo lehet (elofordulhat h. az altalad kizart mezokre kell rakni a focust), nem egyszerubb oldal / formhoz igazitva megmondani h. (itt most ebben az esetben) EZEN a mezon legyen a focus?

  2. zsolti hozzászólása:

    Pont azt szerettem volna kiváltani, mivel eddig így nézett ki:

    if($(‘mail’) && $(‘mail’).tagName == ‘INPUT’) {
    if($F(‘mail’) != ”) Field.focus(‘pass’);
    else Field.focus(‘mail’);
    }

    …meg ilyenekből még 60 sor. (Persze speciális eset, egyet értek, de ezért tettem közzé, hogy akinek hasonló kell, ebből kiindulhat.)

  3. cadmagician hozzászólása:

    akkor használod a $(‘mezo-id’).focus(); -t

ITT és MOST VÁRJUK A HOZZÁSZÓLÁST!

Email cím (nem tesszük közzé) A kötelezően kitöltendő mezőket * karakterrel jelöljük

*

A következő HTML tag-ek és tulajdonságok használata engedélyezett: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>