Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: JavaScript: Javascript alert - miten kattoa onko ok-nappia painettu?

Sivun loppuun

Keanna [04.12.2010 20:25:17]

#

Tervehdys jälleen! Miten saan tsekattuu onko javascript alertin ok-nappia painettu? Javascript alert on siis asp.net sivuillani, ku en tiedä miten muutoin voisin luoda messageboksin.

Macro [04.12.2010 20:27:45]

#

Ei alerttiin saa nappia, sillä on jokin muu nimi mitä en nyt muista. Asetat kumminkin sen ikkunan luonnin johonkin muuttujaan ja if lauseessa tarkistat if(muuttuja) = OK-nappia painettu.

var laatikko = confirm("Haluatko jatkaa?");
if(laatikko) // Halutessasi if(laatikko == true)
	alert("OK-nappia painettu!");
else
	alert("Cancel-nappia painettu!");

Edit. Onhan siinäkin alertissa nähtävästi OK ja Cancel napit, mutta tossa nyt kumminkin tollainen.

Metabolix [04.12.2010 20:28:38]

#

Koodin suoritus ei jatku alert-riviltä, ennen kuin ponnahdusikkuna on suljettu. ASP.NETille et toki saa tästä millään tietoa, eikä tarvitsekaan, koska koko ASP.NET-koodi on jo suoritettu, ennen kuin selain aloittaa JS:n suorituksen.

Jos laatikon on tarkoitus jollain tavalla vaikuttaa ASP.NET-sivuun, viisaampi ratkaisu olisi tehdä erillinen sivu, joka sisältää vain HTML:llä toteutetun laatikon ja josta sitten ihan tavallisella formilla jatketaan eteenpäin. Näin toiminta ei ole JS:stä riippuvainen, ja lisäksi tällaisen laatikon voi muotoilla mieleisekseen (ja eri selaimillakin samanlaiseksi) kuten minkä tahansa HTML-sivun.

-tossu- [04.12.2010 20:32:13]

#

Keanna kirjoitti:

Miten saan tsekattuu onko javascript alertin ok-nappia painettu?

Alert pysäyttää koodin suorittamisen siihen asti, kunnes nappia painetaan.

Keanna kirjoitti:

Javascript alert on siis asp.net sivuillani, ku en tiedä miten muutoin voisin luoda messageboksin.

ASP.NET ei liity alerttiin mitenkään; JavaScript suoritetaan selaimessa ja ASP.NET palvelimella.

Edit: Metabolix ja Macro vastasivatkin jo tähän.

Keanna [04.12.2010 20:44:28]

#

Macro: Valitti tuosta var-muuttujasta "Cannot assing void to an implicitly-Typed local variable".

Onko muuten mitään muuta tapaa luoda messagebox asp.net sivulle, jossa olis cancel ja ok napit? Tuossa javascript alertis on ainoastaan ok-nappi.

Metabolix: Täytyypä miettiä tuota kokonaan uuden hötömölösivun tekoa..

-tossu- [04.12.2010 21:02:43]

#

Keanna kirjoitti:

Macro: Valitti tuosta var-muuttujasta "Cannot assing void to an implicitly-Typed local variable".

Macron koodi oli JavaScriptiä. Tuo virheilmoitus näyttää siltä, että luulit sen olevan ASP.NET-koodia ja yritit suorittaa sitä palvelimella.

Keanna kirjoitti:

Onko muuten mitään muuta tapaa luoda messagebox asp.net sivulle, jossa olis cancel ja ok napit? Tuossa javascript alertis on ainoastaan ok-nappi.

Voihan sen messageboxin tehdä itse vaikka diveistä, mutta tuo confirm-funktio on paljon helpompi.

Macro [04.12.2010 21:57:43]

#

ASP.NETin ja Javascriptin voisi "sekoittaa" vaikka sitten näin jos tätä hait.

Response.Write("<script>alert('Hello')</script>");

Metabolix [04.12.2010 22:32:24]

#

-tossu- kirjoitti:

Voihan sen messageboxin tehdä itse vaikka diveistä, mutta tuo confirm-funktio on paljon helpompi.

Jos on tosiaan tarkoitus saada jotain tietoa takaisin palvelimelle päin ja nimenomaan palvelimella tarkistaa, painettiinko OK, HTML-vaihtoehto on useissa tapauksissa helpompi ja joustavampi. Sitä paitsi jos sovelluksen rakenne on järkevä, HTML-laatikkoakaan ei tarvitse ohjelmoida monta kertaa, vaan siitä voi tehdä helppokäyttöisen komponentin.

Keanna [05.12.2010 13:25:43]

#

Kiitokset vastanneille! :) Tuolla confirm-jutulla sain homman toimimaan.

Keanna [05.12.2010 13:49:15]

#

Niin ja ainiin vielä semmonen, et ku sain siis toimimaan, mutta voisko joku selittää mitä tuossa else-lohkon koodissa oikeestaan tapahtuu (kopsin tämän eräältä nettisivulta):

function confirmAction() {
        if (confirm('Haluatko varmasti poistaa tiedot?'))
        {

            return true;
        }
        else {
                   document.getElementById('<%=LblVahvistus.ClientID  %>').innerHTML = "";


            return false;
        }
    }

Macro [05.12.2010 15:45:31]

#

Muutetaan tuollaisen elementin arvo tyhjäksi "".

Keanna [05.12.2010 18:53:32]

#

Ooke :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta