Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Javascript - před odesláním formuláře by se zkontrolovali pole

Zdravím, programuji v php a mám rozdělaný web a chtěl bych tam přidat trochu toho javascriptu. NEvíte jestli by šlo přes javascript udělat že přes odesláním formuláře by se zkontrolovali pole jestli nejsou prázdné tak se odešle a eště tam mám pole které musí obsahovat jen čísla myslíte že by šlo také zjistit že obsahuje čísla?
Zmena predmetu, pôvodne: Javascript (los)

Předmět Autor Datum
Odpověď na všechny otázky je ano.
Flash_Gordon 17.03.2011 18:59
Flash_Gordon
A mohl by jsi mi prosimtě napsat jak by to bylo nějak orientačně jakž takž se orientuju v javascript…
88sking 17.03.2011 19:19
88sking
např.: http://www.jakpsatweb.cz/javascript/formular-zruse ni.html
Flash_Gordon 17.03.2011 19:23
Flash_Gordon
Najjednoduchšie je dať na koniec stránky pred </body> skript, ktorý prebehne všetky formuláre a nast…
los 17.03.2011 20:35
los
No tak děkuju za rady pokusim se to použít :) poslední
88sking 18.03.2011 06:30
88sking

Najjednoduchšie je dať na koniec stránky pred </body> skript, ktorý prebehne všetky formuláre a nastaví obsluhu udalosti submit (ak dáš formuláru identifikátor, tak nemusíš prechádzať všetky formuláre, ale použiješ document.getElementById). V tej obsluhe si už skontroluješ, čo len chceš. Napr. kontrola textových polí na prázdnu hodnotu by vyzerala nasledovne:

for (var j = 0, jlen = document.forms.length; j < jlen; ++j)
  document.forms[j].onsubmit = function(e) {
    for (var i = 0, ilen = this.elements.length; i < ilen; ++i) {
      var el = this.elements[i];
      if (el.type == 'text' && !el.value) {
        alert('Vyplňte povinné pole ' + el.name);
      	return false;
      }
    }
  }

S jQuery môžeš použiť plugin pre validáciu alebo si napísať svoju kontrolu, ktorú nemusíš dávať na koniec stránky, ale kľudne do elementu head:

$(function() {
  $('form').submit(function() {
    var existsEmpty = false;
    $.each(this.elements, function() {
      if (this.type == 'text' && !this.value) {
        alert('Vyplňte povinné pole ' + this.name);
        existsEmpty = true;
        return false;
      }
    });
    return !existsEmpty;
  });
});

Zpět do poradny Odpovědět na původní otázku Nahoru