webForumDet fria alternativet

Min/max antal radiobuttons ifyllda

JavaScript

9 svar · 187 visningar · startad av qwerty

Medlem sedan jan. 2001391 inlägg
Frågan#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...

Medlem 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 -
------------------

Medlem 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...

Medlem 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 -
------------------

Medlem sedan juni 200032 967 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>

Medlem 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

Medlem 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 -
------------------

Medlem 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

Medlem 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...

Medlem 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

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)