Hei,
muutin lomakkeeni toimimaan jQ:lla, ja sain sen mielettömän hienoksi -- lomake on hyvä. jQ on aika peli.
Mutta, haluan saada siihen kaksi nappia, toinen olkoon perinteinen "lähetä" ja toinen "esikatsele", joka siis tiivistää lomakkeen tiedot ja esittää ne ruudulla <div>:ien välissä. Nyt, jossain vaiheessa sain esikatselun tiedot häviämään. Ne näkyvät, sen aikaa, kun selain lataa sivustoa, mutta kun sivusto on valmis, ne pomppaavat pois. Minne lie bittiavaruuteen kadonneet.
Mitä ilmeisemmin olen tehnyt tämän aivan väärin -- koodini tuntuu aikamoiselta purkkaviritykseltä. Jos saisin teiltä vinkkiä tai ohjetta, niin otan opiksi.
Lomake:
<form method="post" id="UusiRatkaisu" action=""> <input class="laheta" type="submit" id="lahetanappiRatk" name="lahetanappiRatk" value="Lähetä ratkaisu" > <button class="nappulani" value="esikatsele" >Esikatsele kysymys!</button> <div id="Ratkaisu"> </div> </form>
jQ:
$('.nappulani').click(function() { esikatsele = true; }); $('.laheta').click(function() { esikatsele = false; }); form.submit(function( ){ if (esikatsele == true){ var sisalto = ... $("#Ratkaisu").html( sisalto ); return; } ... submit-napin koodi jatkuu täällä.
Ei oikein kaunista, kun on tuo boolean esikatsele. Miten tuollainen kuuluu oikeasti tehdä? Jos poistan return-lauseen, niin esikatsele-napista tulostuu oikein, mutta se jatkuu tiedon talletukseen saakka, enkä sitä halua.
Esikatsele-napin on oltava lomakkeen sisällä, koska se on pitkä ja jatkuu "turhilla" tiedoilla vielä paljon alaspäin.
Mod. vaihtoi oikeat kooditagit. (JavaScript ei ole PHP!)
Opettelepa sellainen funktio kuin event.preventDefault.
Kiitos, maestro.
Hyvin toimii, hyvin kuuluu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.