Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ASP.NET postback i form.onsubmit event

[es] :: .NET :: ASP.NET :: ASP.NET postback i form.onsubmit event

[ Pregleda: 2290 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon ASP.NET postback i form.onsubmit event06.03.2007. u 09:42 - pre 208 meseci
Pozdrav svima,

Ne znam koliko koristite klijentske skriptove, tj. da li ste se susretali sa sledećim problemom:

Imam neki klijentski kôd koji se izvršava na onsubmit eventu forme. Ako se postback izaziva npr. klikom na neko dugme, to lepo radi. Međutim, ako se postback izaziva iz javascripta (npr. korišćenjem LinkButton kontrole, ili AutoPostBack propertija na recimo RadioButtonList-u), onsubmit handler se ne poziva (proizvođači brauzera su tu odstupili od W3C specifikacije). Kako vi rešavate ovaj problem?
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: ASP.NET postback i form.onsubmit event06.03.2007. u 10:04 - pre 208 meseci
Ok, posle malo guglanja našao sam drži-bure-vodu rešenje (ovde ga kombinujem sa jQuery):
Code:

// save a reference to the original __doPostBack
var __oldDoPostBack = __doPostBack;
// replace __doPostBack with another function
__doPostBack = function(eventTarget, eventArgument) {
    // zvanje onsubmit handlera:
    $('#aspnetForm').submit();
    // zovemo originalnu ASP.NET postback funkciju
    return __oldDoPostBack (eventTarget, eventArgument);
}

Ako neko ima bolje rešenje, neka javi. Hvala.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: ASP.NET postback i form.onsubmit event06.03.2007. u 12:18 - pre 208 meseci
Izgleda mi kao da radis u .NET1.1, asp.net2 je resio ovaj problem. Ovako izgleda fabricki publikovani doPostback:

Code:

<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
// -->
</script>



Kao sto vidis prvo poziva onsubmit ako je prisutan i na osnovu return-a iz onsubmit postuje ili ne (mozes da sprecis submit forme). Kombinovano sa resenjem koje si dao moglo bi i ovako da se uradi:


Code:

<script type="text/javascript">
<!--
var __oldDoPostBack = __doPostBack;
__doPostBack = function(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
    __oldDoPostBack (eventTarget, eventArgument);
    }
}
// -->
</script>


Proveri samo dal 1.1 koristi identifikator theForm ili neki drugi....
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: ASP.NET postback i form.onsubmit event06.03.2007. u 12:40 - pre 208 meseci
Au contraire, koristim 2.0, fabrički JS izgleda tako kao što si napisao, ali ne radi (kad se forma submituje na način koji sam gore naveo)... :) Iskreno, pojma nemam zašto.

Btw, u rešenju koje daješ dvaput se proverava i poziva onsubmit, jednom u tvojoj bezimenoj funkciji, drugi put u staroj __dopostback funkciji.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: ASP.NET postback i form.onsubmit event06.03.2007. u 13:16 - pre 208 meseci
Citat:
jablan: Au contraire, koristim 2.0, fabrički JS izgleda tako kao što si napisao, ali ne radi (kad se forma submituje na način koji sam gore naveo)... :) Iskreno, pojma nemam zašto.

Btw, u rešenju koje daješ dvaput se proverava i poziva onsubmit, jednom u tvojoj bezimenoj funkciji, drugi put u staroj __dopostback funkciji.


Pa koji je to brauzer, kod mene na IE 6 i 7 radi ok. Mogu da razumem da softverski submit() na formi ne pozove onsubmit ali da ga ne pozove kroz direktan poziv onsubmit() handlera, to je veoma cudno...

A moje resenje poziva dvaput zato sto sam mislio da koristis 1.1 i da je to uzrok tvojih problema. aspnet2 vec ima taj kod.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: ASP.NET postback i form.onsubmit event06.03.2007. u 15:08 - pre 208 meseci
Hm, malo sam isprobavao i situacija je sledeća: onsubmit radi lepo kad se nakači direktno iz JS. Međutim, kad za to koristim jQuery, iz nekog razloga ne radi, i u FF i u IE... Kad nađem malo vremena pokušaću da vidim zašto se to dešava.

Hvala u svakom slučaju.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: ASP.NET postback i form.onsubmit event16.03.2007. u 16:24 - pre 208 meseci
Update: Ako nekom zatreba, tema je elaborirana i par "workaround" rešenja je pronađeno na http://www.devprotalk.com/showthread.php?t=2607
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: ASP.NET postback i form.onsubmit event

[ Pregleda: 2290 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.