Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Поменять event`ы местами (https://javascript.ru/forum/events/12225-pomenyat-event%60y-mestami.html)

UnderShot 07.10.2010 17:24

Поменять event`ы местами
 
Есть форма (form#abc), к ней уже пришит onsubmit, я хочу к форме добавить еще один onsubmit, но чтобы функция выполнялась раньше первоначального event`а:
<form id="abc"> … </form>

<script>
var form=document.getElementById("abc");

form.onsubmit=function(){
	alert("First event")
	return false
}

function secondEvent(){
	alert("I`m a second event")
	return false
}

/* и как-нибудь */

form.onsubmit[0]=secondEvent; // =D
</script>
Вообщем, как поменять местами эвенты?

Sweet 07.10.2010 17:38

С помощью .onsubmit можно повесить только одну функцию. Пусть это будет функция, запускающая нужные функции:)
form.onsubmit=function(){ 
  firstEvent();
  secondEvent();
} 

function firstEvent(){ alert("First event"); }
function secondEvent(){ alert("I`m a second event"); }

UnderShot 07.10.2010 17:39

Делал даже так:
var form=document.getElementById("abc");

form.onsubmit=function(){
	alert("First event")
	return false
}

var submitten=form.onsubmit;

form.onsubmit=function(){
	submitten()
	alert("First event")
	return false
}
Но не сработало.

UnderShot 07.10.2010 17:49

Sweet, имя первой onsubmit-функции я не могу определить.

Sweet 07.10.2010 17:53

Ну тогда добавь вторую функцию методом attachEvent/addEventListener. Правда не знаю, какая функция сработает первой:)

Skipp 07.10.2010 17:54

Читай про события

UnderShot 07.10.2010 19:30

Skipp, что я там должен прочесть?

Kolyaj 08.10.2010 08:17

Цитата:

Сообщение от UnderShot
что я там должен прочесть?

Как с событиями работать в JS, а не свои выдумки пытаться реализовать.

UnderShot 08.10.2010 21:21

Вот, написал, использовал замыкания:
(function(i){
		var old=b[i].form.onsubmit;
		b[i].form.onsubmit=function(){
		for(var o=0,t=this;o<t.length;o++){
			t[o].value=""
		};
		old()
	}
})(i);
Чувств ю, пахнет быдлокодингом…


Часовой пояс GMT +3, время: 00:30.