webForumDet fria alternativet

flera submit-knappar inom samma formulär

JavaScriptur Javascript

17 svar · 585 visningar · startad av devotion

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

Hejsan :)

Jag har ett (1) formulär. Inom dett listas poster. Varje post har en checkbox.

Jag har flera submit-knappar. "Radera" "sammanfoga" "klona"

Hur gör jag för att "koppla" knappar till olika asp-sidor?

Värdena på de ikryssade checkboxarna måste folja med vid submit

Radera --> deleteTask.asp
Sammanfoga --> joinTask.asp
Klona --> cloneTask.asp

Mvh
henrik

Medlem sedan dec. 20025 483 inlägg
#2

God kväll! :)

function submitForm(frm, url){
  frm.action = url;
  frm.submit();
}

<input type="[b]button[/b]" value="Radera" onclick="submitForm(this.form, 'deleteTask.asp')">
<input type="[b]button[/b]" value="Sammanfoga" onclick="submitForm(this.form, 'joinTask.asp')">
<input type="[b]button[/b]" value="Klona" onclick="submitForm(this.form, 'cloneTask.asp')">
Medlem sedan jan. 20013 582 inlägg
#3

hehe gokväll på dig :)

Hur får jag ihop:

onclick="return validate(this.form);"

med

onclick="submitForm(this.form, 'deleteTask.asp')"

Mvh
henrik

Medlem sedan dec. 20025 483 inlägg
#4

Hur ser validate() ut? Den borde vi kunna lägga i onsubmit nämligen. :)

Red./ Jag kanske skall tillägga att följande också är möjligt:

<input type="submit" value="Radera" onclick="this.form.action='deleteTask.asp'">
<input type="submit" value="Sammanfoga" onclick="this.form.action='joinTask.asp'">
<input type="submit" value="Klona" onclick="this.form.action='cloneTask.asp'">
Medlem sedan jan. 20013 582 inlägg
#5

Tja :)

Här är all kod:

¨
<script type="text/javascript">

//Funktion för att kontrollera om en kryssruta är ikryssad samt konfirmera redera uppdrag
function validate(frm){
  var cb = frm.elements["checkTask"],
      i  = cb.length;

  while (i--){
    if (cb[i].checked){ return confirm('Är du säker på att du vill radera uppdragen?') }
  }

  alert("Inget uppdrag är markerat!");

  return false;
}

//Funktion för flera submit-knappar
function submitForm(frm, url){
  frm.action = url;
  frm.submit();
}

</script>

Det kanske går att göra någon käck lösning...

-Att någon kryssruta måste vara ifylld gäller ju för alla tre knapparna
-Alertetn borde ju ändras efter den knappen man valt att trycka på

"Är du säker på att du vill radera uppdragen?"
"Uppdraget kommer att Klonas, vill du fortsätta?"
"Uppdragen kommer att sammanfogas. Vill du fortsätta?"

Mvh Henrik

Medlem sedan dec. 20025 483 inlägg
#6

Hur vet vi vilken checkTask-knapp som hör till radera, klona och sammanfoga? (Jag antar att de har distinkta value-värden.)

:)

Medlem sedan jan. 20013 582 inlägg
#7

:)

Om jag inte missförstår dig...

varje uppdrag har en checkbox

<input type="checkbox" name="checkTask" value="<% =server.htmlencode(objRS("Id")) %>" />

värdet på den är aktuellt updragsId

Mvh
henrik

Medlem sedan dec. 20025 483 inlägg
#8

Äh, bry dig inte om mitt senaste inlägg - jag tror jag missuppfattade dig.

Red./

function submitForm(frm, url, msg){
  frm.action = url;

  var cb = frm.elements["checkTask"],
      i  = cb.length;

  while (i--){
    if (cb[i].checked){
      if (confirm(msg)){ frm.submit() }
      return;
    }
  }

  alert("Inget uppdrag är markerat!");
}

<form>
  <input type="button" value="Radera" onclick="submitForm(this.form, 'deleteTask.asp', 'Är du säker på att du vill radera uppdragen?')">
  <input type="button" value="Sammanfoga" onclick="submitForm(this.form, 'joinTask.asp', 'Uppdraget kommer att klonas, vill du fortsätta?')">
  <input type="button" value="Klona" onclick="submitForm(this.form, 'dev.html', 'Uppdragen kommer att sammanfogas. Vill du fortsätta?')">
</form>

:)

Medlem sedan jan. 20013 582 inlägg
#9

hehe, det blev bättre efter redigeringen 00:37 men man kommer inte förbi spärren att "inget uppdrag är markerat"

även om det är markerat så säger den att det inte är det...

Mvh
henrik

Medlem sedan dec. 20025 483 inlägg
#10

Inte med följande test:

<script>
function submitForm(frm, url, msg){
  frm.action = url;

  var cb = frm.elements["checkTask"],
      i  = cb.length;

  while (i--){
    if (cb[i].checked){
      if (confirm(msg)){ frm.submit() }
      return;
    }
  }

  alert("Inget uppdrag är markerat!");
}
</script>
<form>
  <input type="checkbox" name="checkTask">
  <input type="checkbox" name="checkTask">
  <input type="button" value="Radera" onclick="submitForm(this.form, 'deleteTask.asp', 'Är du säker på att du vill radera uppdragen?')">
  <input type="button" value="Sammanfoga" onclick="submitForm(this.form, 'joinTask.asp', 'Uppdraget kommer att klonas, vill du fortsätta?')">
  <input type="button" value="Klona" onclick="submitForm(this.form, 'cloneTask.asp', 'Uppdragen kommer att sammanfogas. Vill du fortsätta?')">
</form>
Medlem sedan jan. 20013 582 inlägg
#11

hmm, ditt testscript funkar ju fint.. men det funkar inte på den riktiga sidan...

Medlem sedan dec. 20025 483 inlägg
#12

Verkar fungera bra för mig. Kan du bifoga koden som den syns i "Visa källa"?

Medlem sedan jan. 20013 582 inlägg
#13

kommer här

Medlem sedan dec. 20025 483 inlägg
#14

Nu då? :)

function submitForm(frm, url, msg){
  frm.action = url;

  var cb = frm.elements["checkTask"],
      i  = cb.length;

  if (!i && cb.checked){
    if (confirm(msg)){ frm.submit() }
    return;
  } else {
    while (i--){
      if (cb[i].checked){
	if (confirm(msg)){ frm.submit() }
	return;
      }
    }
  }

  alert("Inget uppdrag är markerat!");
}
Medlem sedan jan. 20013 582 inlägg
#15

Weeee!

Fungerar finfint...

Tackar!!!

Mvh
henrik

Medlem sedan dec. 20025 483 inlägg
#16

Ännu en maratontråd till ända! :birp

Medlem sedan jan. 20013 582 inlägg
#17

Peter S skrev:

Ännu en maratontråd till ända! :birp

hehe... jo det har en tendens att bli så.... Känner mig helt slut....

Har lovat att bli klar till årsskiftet...

Det är ju hela två dagar kvar... Wee...

Mvh
henrik

Medlem sedan dec. 20025 483 inlägg
#18

devotion skrev:

hehe... jo det har en tendens att bli så.... Känner mig helt slut....

Har lovat att bli klar till årsskiftet...

Det är ju hela två dagar kvar... Wee...

Mvh
henrik

Hang in there! (y)

139 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)