Toon posts:

[HTML/JS] Dynamische action arg bij form element

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil met een zoekveld in 2 dingen kunnen zoeken. Maar die 2 dingen hebben een aparte action en textfield nodig en toch wil ik het dmv een selectbox doen. Het ziet er alsvolgt uit:
HTML:
1
2
3
4
5
6
7
8
<form name="searchform" method="get" "action="zoekform.php">
  <input type="text" name="zoekterm">
  <select name="selectVeld">
    <option value="deze" selected>deze site</option>
    <option value="andere">andere site</option>
  </select>
  <input type="button" name="button" OnClick="...">
</form>


de javascript code die uitgevoerd bij de onclick van de button
JavaScript:
1
2
3
4
5
6
7
if( document.quicksearch.selectVeld.value == 'deze'){ 
  document.quicksearch.submit();
} else {
  document.quicksearch.action = 'http://www.anderesite.nl/test.php';
  document.quicksearch.target='_blank';
  document.quicksearch.submit();
}


Weet iemand hoe ik dat kan oplossen? of kan dit helemaal niet?

[ Voor 16% gewijzigd door Verwijderd op 14-02-2005 21:53 ]


  • HyperioN
  • Registratie: April 2003
  • Laatst online: 25-04 09:11
In het stukje html noem je de eerste value "deze" en in het Javascript "dit forum", en het form "searchform" maar in het javascript "quicksearch".
En volgens mij moet je ipv "document.quicksearch.select.value" "document.quicksearch.selectVeld.value" gebruiken... (weet ik niet zeker though).

Weet niet of dat het oplost maar lijkt me al een beginnetje.

Verwijderd

Topicstarter
HyperioN. schreef op maandag 14 februari 2005 @ 21:45:
In het stukje html noem je de eerste value "deze" en in het Javascript "dit forum", en het form "searchform" maar in het javascript "quicksearch".
En volgens mij moet je ipv "document.quicksearch.select.value" "document.quicksearch.selectVeld.value" gebruiken... (weet ik niet zeker though).

Weet niet of dat het oplost maar lijkt me al een beginnetje.
Ja sorry, ik heb het verkeerd overgenomen, maar de if statement werkt in het echt wel. Heb het ook ff aangepast bovenaan.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:54

crisp

Devver

Pixelated

quicksearch != searchform ;)

En als je dan toch afkijkt van onze quicksearch, doe het dan goed en gebruik ook een onsubmithandler:
HTML:
1
2
3
4
5
6
7
8
<form method="get" "action="zoekform.php" onsubmit="return quicksearch(this)">
  <input type="text" name="zoekterm">
  <select name="selectVeld">
    <option value="deze" selected>deze site</option>
    <option value="andere">andere site</option>
  </select>
  <input type="submit" value="submit">
</form>

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function quicksearch(form)
{
  var zoekterm = form.elements['zoekterm'].value;
  if (zoekterm == '')
  {
    alert('Geen zoekterm opgegeven!');
    return false;
  }

  var select = form.elements['selectVeld'], site = select.options[select.selectedIndex].value;
  switch (site)
  {
    case 'deze':
      break;
    case 'andere':
      form.action = 'http://www.anderesite.nl/test.php';
      form.target = '_blank';
      break;
    case 'google':
      window.location.href = 'http://www.google.com?q=' + zoekterm;
      return false;
    default:
      alert('ken ik niet');
      return false;
  }
  return true;
}

;)

[ Voor 6% gewijzigd door crisp op 15-02-2005 00:08 ]

Intentionally left blank


Verwijderd

Topicstarter
ok prachtig. Ik heb het nog niet getest maar het zal ongetwijfeld werken. Alleen ik had dit ook al voor elkaar alleen op een andere manier. Waarom ik de action en de target van de form wil veranderen is dat ik in mn forum wil zoeken en ook met google (betaald zoeken).
Het forum heeft een andere zoekveldnaam nodig en een andere action en natuurlijk een andere target. Als ik met google ga zoeken via het een directe url dan wordt er niet bijgehouden hoeveel mensen zoeken via google en krijg ik niet betaald ;)

Dus zou ik het zo willen oplossen maar ken dat ook?