webForumDet fria alternativet

Min/max antal radiobuttons ifyllda

9 svar · 187 visningar · startad av qwerty

qwertyMedlem sedan jan. 2001391 inlägg
#1

Snälla hjälp mig ty snart går jag i taket och sliter mitt hår. Jag är ute efter ett javascript som gör att jag kan fylla i två radiobuttons. Om man bara väljer ett eller mer än två ska man få ett mess om att man måste välja två alternativ.

Jag har tittat både här och här men inte lyckats anpassa det till mitt formulär. Kanske kan någon hjälpa mig med utgångspunkt från mitt formulär nedan...

<form method="post" action="poll_stats.asp?id=<%=intPoll_ID%>">
  <table width="400" border="0" cellspacing="0" cellpadding="1">
    <tr> 
      <td colspan="2"><%=strQuestion%></td>
    </tr>
    <tr> 
      <td width="46">&nbsp;</td>
      <td width="350">&nbsp;</td>
    </tr>
<%
For i = 0 To intAnswers-1
%>
    <tr> 
      <td width="46" align="center"> 
        <input type="radio" name="vote" value="<%=i+1%>">
      </td>
      <td width="350"><%=arrAnswer(i)%></td>
    </tr>
<%
Next
%>
    <tr> 
      <td width="46">&nbsp;</td>
      <td width="350">&nbsp;</td>
    </tr>
    <tr> 
      <td colspan="2">
        <input type="submit" name="button" value="R&ouml;sta">
        &nbsp;&nbsp; <a href="poll_stats.asp?id=<%=intPoll_ID%>">Se aktuell 
        st&auml;llning</a></td>
    </tr>
  </table>
</form>

------------------
Qwerty

Den som provar han testar...

JohnsenMedlem sedan juli 2000836 inlägg
#2

Men, det fina med radioknappar är ju att man bara kan välja en när man har flera med samma namn!

Du har inte funderat på checkboxar?

------------------
- J-O-H-N-S-E-N -
------------------

qwertyMedlem sedan jan. 2001391 inlägg
#3

Nu är det checkboxar istället men tyvärr kvarstår ju själva problemet.
Man ska ju vara tvungen att välja 2 st.

<form method="post" action="poll_stats.asp?id=<%=intPoll_ID%>">
<table width="400" border="0" cellspacing="0" cellpadding="1">
<tr> 
<td colspan="2"><%=strQuestion%></td>
</tr>
<tr> 
<td width="46"> </td>
<td width="350"> </td>
</tr>
<%
For i = 0 To intAnswers-1
%>
<tr> 
<td width="46" align="center"> 
<input type="checkbox" name="vote" value="<%=i+1%>">
</td>
<td width="350"><%=arrAnswer(i)%></td>
</tr>
<%
Next
%>
<tr> 
<td width="46"> </td>
<td width="350"> </td>
</tr>
<tr> 
<td colspan="2">
<input type="submit" name="button" value="Rösta">
   <a href="poll_stats.asp?id=<%=intPoll_ID%>">Se aktuell 
ställning</a></td>
</tr>
</table>
</form>

------------------
Qwerty

Den som provar han testar...

JohnsenMedlem sedan juli 2000836 inlägg
#4

Prova detta:

<html>
<head>
<script language="JavaScript">
<!--
n=0
function rakna(w){
(document.foo.vote[w].checked==true)? n++ : n--;
}
function koll(){
if(n<2){alert("Minst 2 måste bockas!"); return false}
if(n>2){alert("Max 2 får bockas!"); return false}
}
//-->
</script>
</head>

<form name="foo" method="post" action="poll_stats.asp?id=<%=intPoll_ID%>" onsubmit="return koll();">
<table width="400" border="0" cellspacing="0" cellpadding="1">
<tr> 
<td colspan="2"><%=strQuestion%></td>
</tr>
<tr> 
<td width="46"> </td>
<td width="350"> </td>
</tr>
<%
For i = 0 To intAnswers-1
%>
<tr> 
<td width="46" align="center"> 
<input type="checkbox" name="vote" value="<%=i+1%>" onclick="rakna(<%=i%> );">
</td>
<td width="350"><%=arrAnswer(i)%></td>
</tr>
<%
Next
%>
<tr> 
<td width="46"> </td>
<td width="350"> </td>
</tr>
<tr> 
<td colspan="2">
<input type="submit" name="button" value="Rösta">
<a href="poll_stats.asp?id=<%=intPoll_ID%>">Se aktuell 
ställning</a></td>
</tr>
</table>
</form>

------------------
- J-O-H-N-S-E-N -
------------------

@ndersMedlem sedan juni 200032 969 inlägg
#5

eller

function koll(){
if(n!=2){alert("2 måste bockas!"); return false}
}

förlåt, jag vet att jag inte får vara här... ;)

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>

JojoxxMedlem sedan juni 20004 308 inlägg
#6

Flera checkboxar med samma namn ("vote") kan ställa till problem. Här är de döpta till vote1, vote2, osv. Då måste givetvis även scriptet som tar emot datat modifieras för att hantera detta;

<script language="JavaScript">
function checkEm(){
	var ch=0;
	for(n=1;n<=<%=intAnswers%>;n++){
		if(eval("document.myForm.vote"+n+".checked")){ ch++; }
	}
	if(n==2)( return true; } else { alert("2 rutar måste markeras, varken mer eller mindre"); return false; }
}
</script>
<form method="post" name="myForm" action="poll_stats.asp?id=<%=intPoll_ID%>" onSubmit="return checkEm();">
<table width="400" border="0" cellspacing="0" cellpadding="1">
<tr> 
<td colspan="2"><%=strQuestion%></td>
</tr>
<tr> 
<td width="46"> </td>
<td width="350"> </td>
</tr>
<%
For i = 0 To intAnswers-1
%>
<tr> 
<td width="46" align="center"> 
<input type="checkbox" name="vote<%=i+1%>" value="<%=i+1%>">
</td>
<td width="350"><%=arrAnswer(i)%></td>
</tr>
<%
Next
%>
<tr> 
<td width="46"> </td>
<td width="350"> </td>
</tr>
<tr> 
<td colspan="2">
<input type="submit" name="button" value="Rösta">
<a href="poll_stats.asp?id=<%=intPoll_ID%>">Se aktuell 
ställning</a></td>
</tr>
</table>
</form>

------------------

/ J

JohnsenMedlem sedan juli 2000836 inlägg
#7

@nders: :e
Jojoxx: hur menar du att de kan ställa till problem?

------------------
- J-O-H-N-S-E-N -
------------------

JojoxxMedlem sedan juni 20004 308 inlägg
#8

Inte mer problem än att asp-sidan som tar emot datat måste vara skriven för att hantera flera värden med samma namn. Istället för att använda datat direkt från formuläret måste "1, 2" ses som 1 och 2 istället för en sammanhängande text-sträng. I båda fallen måste denna sida anpassas, så det är väl hugget som stucket vilken variant man använder :)

------------------

/ J

qwertyMedlem sedan jan. 2001391 inlägg
#9

Tack, tack.

Jag har en fråga till. Hur ska jag skriva åäö i alert-meddelandet för att de ska visas rätt. Provade html-formaterat men det gick ej.

------------------
Qwerty

Den som provar han testar...

JojoxxMedlem sedan juni 20004 308 inlägg
#10

Du får köra med svenska tecken och hoppas att användaren sitter på en svensk plattform;

alert('Ööööhhh... har den äran...');

------------------

/ J

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