webForumDet fria alternativet

Problem med submit och DisableForm

1 svar · 417 visningar · startad av Fireh

FirehMedlem sedan jan. 2003173 inlägg
#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>
FirehMedlem 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>
Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb