Javascript > Lomakkeiden käsittelystä

PekiT

Mikä olisi helpoin tapa estää seuraava asia:

Internet-sivulla on lomake, jossa on useita kenttiä (nimi, email jne.) ja viimeisenä "lähetä"-painike.

Jos ensimmäiseen kenttään (tai mihin tahansa muuhunkin) kirjoittaa ja painaa enteriä (esim. vahingossa), niin lomake lähetetään.

Yritin Javascriptillä selvitä tuosta (olen tosin ihan aloittelija siinäkin), että jokainen kenttä olisi pakollinen, eikä lomaketta lähetetä ennen kuin jokaisessa on tekstiä. Mutta tuo ei ole hyvä tapa, koska kaikkia kenttiä ei voi tehdä pakolliseksi käytännön syistä.

Eli tiivistettynä: Enterin painaminen tekstikentässä pitäisi saada "pois päältä" :)

Onnistuisihan tuo tosin niin, että jokainen tekstikenttä olisikin "boxi" mutta ei sekään tunnu oikein järkevältä (?)

Ei tuollaista varmaan voisi esim. CSS:llä tehdä (?)

Tuhannet kiitokset jo etukäteen, jos joku jaksaa vaivautua.

4

597

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Piru

      Meinaan toi enter == lähetys tossa formissa.

      vaikka pisti onSubmit="return metodi();"

      ja metodi palautti false, niin lähtipä kuitenkin.

      Sitten kun siitä selvittiin, niin eipä toimi NetScapella samalla tavalla tietenkään.

      Seuraava räpellys ei lähetä, jos painaa enteriä ja toimii sekä NS 7.1 ja IE 6.0. Formi lähtee, kun kentässä on tekstiä ja Submittia painetaan






      document.onkeypress = check_submit;
      document.onmousedown = check_submit;

      function check_submit(e)
      {
      //Netscape välittää eventin muuttujassa e ja IE ei
      if (!e)
      {
      var e = window.event;
      var target= e.srcElement.value;
      }
      else target = e.target.value;

      if(e.keyCode == 13)
      {
      alert("täytä kentät ja lähetä painamalla Submit-nappia hiirellä!");

      }

      else if(target == "Submit" && document.formi.txt.value != "")
      {

         document.formi.submit();

      }
      }

    • MachuPichu

      Tämä oli paha saada toimimaan eri selaimissa, mutta sain tehtyä lyhyen skriptinpätkän ilman selaimen version tutkimista. Huomaa että kaikki "toimenpiteet" funktiossa TorjuEnter eivät ole tarpeellisia kaikissa selaimissa mutta niistä ei ole myöskään haittaa.

      Tämän pitäisi toimia IE5 , NN7.0 / Mozilla1.0 , Opera7 selaimissa (en ole testannut Macin Safari selainta):




      function TorjuEnter(evt) {
      evt = (evt) ? evt : event;
      var charCode = (evt.charCode) ? evt.charCode :
      ((evt.which) ? evt.which : evt.keyCode);
      if (charCode == 13) {
      if (evt.preventDefault)
      evt.preventDefault();
      else
      evt.returnValue = false;
      if (evt.stopPropagation)
      evt.stopPropagation();
      else
      evt.cancelBubble = true;
      return false;
      } else {
      return true;
      }
      }




      Käyttö:





      Machu

    • Testbrain

      Yllä jo saattaa olla päteviä vastauksia, mutta itse ehkä päätyisin seuraavanlaiseen ratkaisuun: Lähetä-napin yläpuolelle laitetaan yksi Check Box ja teksti "Olen tarkistanut lomakkeen oikeellisuuden." Check Box laitetaan oletuksena pois päältä, samoin Lähetä-nappi on oletuksena disabloitu. Kun Check Box valitaan, niin JavaScriptillä muutetaan myös Lähetä-nappi "Enabloduksi".

    • tarkista kentät

      Tietämättä tarkemmin mihin käyttöön lomakkeesi tulee, itse toteuttaisin kyllä tarkistuksen. Korvaa submit normaalilla painikkeella ja suorita lomakkeen lähettäminen skriptistä käsin.

      Lomakkeen tarkistushan käy näppärästi looppaamalla kaikki kentät ehtolauseen lävitse, joka korostaa ongelmalliseet kohdat punaisella.

      Mikäli lomakkaakeesi on riippuvainen javascript tuesta, on hyvä että myös lähettäminen riippuu siitä.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Joensuun kaupunki levittelee tonttitietoja Keskisuomalaiselle

      Sähköposteja ja tonttitietoja levitellään mm. Pasi Koivumaalle
      Joensuu
      27
      3515
    2. Tiesitkö tätä ex-miehistä? Noriko Salo jysäytti yllätyspaljastuksen

      Noriko Salo ja ex-F1 kuski Mika Salo olivat naimisissa v. 1999-2022. Kirsi Salon ex-mies puolestaan on muusikko Sammy A
      Kotimaiset julkkisjuorut
      14
      2740
    3. Kuka? Riehui valtuuston kokouksessa tänään ?

      Onko puolangan puolesta porukkaa. Vaikuttaa siltä. Sairasta.
      Puolanka
      118
      2672
    4. Huh, huh! Sofia Belorf ei ole itse pessyt hiuksiaan kolmeen vuoteen

      Sofia Belorf elää ökyelämää Dubaissa. Sofian arjessa kulta, raha ja luksus ovat vahvasti läsnä. Luksuselämään tottuneell
      Kotimaiset julkkisjuorut
      115
      2358
    5. Kuka oli töllöntyön tekijä?

      Ketä on nyt pidätetty? Oliko syy mustasukkaisuus tyttöystävästä tai oliko muita lieventäviä seikkoja? Katuuko tekijä nyt
      Pieksämäki
      16
      1817
    6. Toivoisitko Rakas vielä?

      Haluaisitko vielä? Uskoisin osaavani näyttää sinulle, kuinka ainutlaatuinen nainen olet.
      Ikävä
      77
      1752
    7. Ihan pieni näkeminen vaan

      👋 ja minä olisin valmis jo vaikka mihin sun kanssa. Nämä on näitä.. 🤫🫣😘💥
      Ikävä
      50
      1668
    8. Sointu Borg tilittää - Ei suostu enää tähän työhön: "Katastrofi"

      Sointu Borg on mediapersoona, joka löi itsensä läpi Diili-realityssä. Borg on monipuolinen tekijä: mediapersoona, juonta
      Suomalaiset julkkikset
      26
      1626
    9. Keskustelua kasteesta

      You tubessa kaksi pappia keskustelivat kasteesta ja kritisoivat raamatullista uskovien kastetta. Toinen heistä yritti
      Kaste
      400
      1325
    10. Jos saisit antaa yhden neuvon

      jälkikasvullesi elämää varten, niin minkä antaisit?
      Sinkut
      143
      1319
    Aihe