witam

z javascript i jquery jestm zielony jak trawa na wiosne
mam na stronce formularz, ktrory ma kilkanascie pol (wiekszosc dropdown)
i jesli uzytkownik nie wypelni ktorys z nich to nie chcialbym
ladowac do tablicy $_GET tych zmiennych - wtedy link bedzie krotszy i 'ladniejszy'

jak takie cos zrobic?

formularz w skroconej formie (pol jest wiecej ale nie bede
wszystkich wstawiac bo to nic nie wnosi do sprawy) :
  1. <form action="....php" method="get" id="form">
  2. <select id="kierunek" name="kierunek" class="form_dropdown" >
  3. <option value="australia">Australia</option>
  4. <option value="brazylia">Brazylia</option>
  5. <option value="bulgaria">Bułgaria</option>
  6. <option value="chile">Chile</option>
  7. </select>
  8. <select id="wyjazd_z" name="wyjazd_z" class="form_dropdown" >
  9. <option value="">- dowolne -</option>
  10. <option value="6">Bydgoszcz</option>
  11. <option value="8">Gdańsk</option>
  12. <option value="2">Katowice</option>
  13. </select>
  14. </form>


chodzi mi o sytuacje kiedy uzytkownik wypelni tylko jedno pole(kierunek)
zeby link byl w postaci
domena.pl/index.php?kierunek=australia
a nie
domena.pl/index.php?kierunek=australia&wyjazd_z=



// EDIT
po dluzszym pytaniu pana gugla w koncu dal mi jakas odpowiednia odpowiedz
ktorej nie chcial dac wczesniej

w kazdym razie usuwanie z linku rozwiazalem polowicznie jak sie okazuje
w ten sposob choc mamy tu problem z FF 4.0 o czym nizej

  1. $(document).ready(function() {
  2. $('#form').submit(function() {
  3. $('#form').find('input, textarea, select').each(function(_, inp) {
  4. if ($(inp).val() === ''){
  5. inp.disabled = true;
  6. }
  7. });
  8. });
  9. });


w przegladarkach, ktore mialem pod reka IE7, chrome 10, safari 4.0.3
nie ma problemu

natomiast w FF4.0 gdy nie wybierzemy (nie ustawimy zadnej wartosci w danym polu)
to nie wpisuje jej nam w url'a (o co mi chodzilo), jednak gdy cofne sie ze strony
wyszukiwania do strony na ktorej mamy ten formularz to puste pola sa zablokowane sad.gif
i tylko odswiezenie je odblokowuje