Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.206 pregleda

Najnovija ↓

ASP.NET postback i form.onsubmit event 06.03.2007. u 10:42 · pre 239 meseci #1
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?
Re: ASP.NET postback i form.onsubmit event 06.03.2007. u 11:04 · pre 239 meseci #2
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.
Re: ASP.NET postback i form.onsubmit event 06.03.2007. u 13:18 · pre 239 meseci #3
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....
Potpis
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ć
Re: ASP.NET postback i form.onsubmit event 06.03.2007. u 13:40 · pre 239 meseci #4
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.
Re: ASP.NET postback i form.onsubmit event 06.03.2007. u 14:16 · pre 239 meseci #5
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.
Potpis
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ć
Re: ASP.NET postback i form.onsubmit event 06.03.2007. u 16:08 · pre 239 meseci #6
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme