webForumDet fria alternativet

identifiera vilken knapp eller <select> användes för att posta formen

JavaScript

2 svar · 324 visningar · startad av jme

Medlem sedan maj 20012 237 inlägg
Frågan#1

Hej!

Jag har kopplat onChange mot en <select> tagg. När användaren aktiverar menyn så postas formuläret (document.form_namn.submit() ).

Jag har smatidigt en submit-knapp på sidan, för samma formulär.

Kan jag på nåt lätt sätt skilja dessa två sätt att posta formuläret? Jag tittade på server-sidan att när formen postas genom <select> taggen så skickas inget namn på händelsen. Normalt när man trycker på en submit-knapp så skickas knappens namn.

Visst kan jag titta om jag hittar submit knappens namn. Finns den inte så postades formen med <select> taggen.

Men har jag då flera <select> taggar i samma form så antar jag att detta skiter sig.

Medlem sedan juni 200032 967 inlägg
#2

Mitt förslag:

  1. Gör en funktion som du anropar vid onchange.
function submitForm(formname, elementname)  {
       document.getElementById('postingElement').value=elementname;
       document.getElementById(formname).submit();
}
  1. Fixa ID på <form>:
<form ... [b]id="form_namn"[/b] ...>
  1. Lägg till ett hidden-element i formuläret, som innehåller namnet på postande element.
<input type="hidden" name="postingElement" id="postingElement">
  1. Ändra onchange på select-element:
<select id="foo" name="foo" onchange="submitForm('form_name', 'foo');">
  1. Ändra även submit-knappen till en button och kör submitForm() på den också:
<input type="button" onclick="submitForm('form_name', 'submitknappen');">

När du tar emot formuläret hämtar du värdet från fältet postingElement, så vet du vad som postade formuläret.

Mvh

Medlem sedan maj 20012 237 inlägg
#3

Tack @nders! Funkar prima!

252 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)