webForumDet fria alternativet
Logga in / Bli medlem

Problem med submit och DisableForm

JavaScript

1 svar · 419 visningar · startad av Fireh

Medlem sedan jan. 2003173 inlägg
Frågan#1

Tja.

Jag har ett formulär med 2 st submit-knappar. Dessa har namnet "Typ" och value="1" resp value="2". För att se vilken knapp jag tryckt på kollar jag Request.Form("Typ") på mottagande sida.

Om jag använder mig av funktion för att göra submit-knapparna ej klickbara när man klickar en gång, så returneras inget värde i Request.Form("Typ"). Säkert för att knappen är inaktiv...

Kan man komma runt detta på något smidigt sätt? Helt enkelt, jag vill veta vilken av två knappar man tryckt på och samtidigt disabla den man tryckt på, eller gärna bägge. Knapparna är slutet av ett formulär, så jag vill ha med inmatad information oavsett knapp.

Använder följande formulärkod:

<form action="step2.asp" method="post" name="Info" onSubmit="return DisableForm(this);">
<input type="text" name="Namn">
<input type="text" name="Nummer">
<input type="submit" name="Typ" value="1" class="knapp">
<input type="submit" name="Typ" value="2" class="knapp">
</form>

Använder följande Javascript:

<script language="JavaScript">
function DisableForm(theform) {
  if (document.all || document.getElementById)
      {
       for (i = 0; i < theform.length; i++)
          {
           var tempobj = theform.elements[i];
           if (tempobj.type.toLowerCase() == "submit" || tempobj.type.toLowerCase() == "reset")
           tempobj.disabled = true;
          }
      }
}
</script>
Medlem sedan jan. 2003173 inlägg
#2

Löste problemet själv till slut. Lösningen bygger på att när man klickar på knappen skrivs ett värde till en hidden input med samma namn som knapparna hade innan. Detta görs med hjälp av ett javascript nedan. Sedan disablas knapparna och formuläret submitas i vanlig ordning.

Använder följande formulärkod:

<form action="step2.asp" method="post" name="Info" onSubmit="return DisableForm(this);">
<input type="text" name="Namn">
<input type="text" name="Nummer">
<input type="hidden" name="Typ">
<input type="submit" value="1" class="knapp" onclick="fn_choose(Typ);fn_typ('1');">
<input type="submit" value="2" class="knapp" onclick="fn_choose(Typ);fn_typ('2');">
</form>

Använder följande Javascript:

<script language="JavaScript">
var oField;
function fn_choose(obj) {
  oField = obj;
}
function fn_typ(num) {
  if(oField != null) {
      oField.value += num;
  }
}
</script>

<script language="JavaScript">
function DisableForm(theform) {
  if (document.all || document.getElementById)
      {
       for (i = 0; i < theform.length; i++)
          {
           var tempobj = theform.elements[i];
           if (tempobj.type.toLowerCase() == "submit" || tempobj.type.toLowerCase() == "reset")
           tempobj.disabled = true;
          }
      }
}
</script>
259 ms totalt · 4 externa anrop · v20260731065814-full.0583408b
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)