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.
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.
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.
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.
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..
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.
ASP.NETin ja Javascriptin voisi "sekoittaa" vaikka sitten näin jos tätä hait.
Response.Write("<script>alert('Hello')</script>");
-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.
Kiitokset vastanneille! :) Tuolla confirm-jutulla sain homman toimimaan.
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; } }
Muutetaan tuollaisen elementin arvo tyhjäksi "".
Ooke :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.