CantonaMedlem sedan juni 200161 inlägg Nu behöver jag eran hjälp.
Låt säga att jag har 3 st checkboxar, jag skulle vilja kunna välja en eller flera boxar. När jag sedan skickar urlen så vill jag att strängen skall se ut på följande sätt:
poup.asp?val=1,2
Om jag nu har checkat checkbox 1 samt 2.
Alla små tips är välkommna så jag har någonting att börja med.
Självklart så vill jag kunna avmarkera checkboxarna.
Jag vill även att sidan inte laddas om när jag skickar iväg värdet.
<FORM NAME="FOO">
<input type="checkbox" NAME="1">
<input type="checkbox" NAME="2">
<input type="checkbox" NAME="3">
<input type="button" value="Öppna popup" OnClick="?">
</FORM>
CantonaMedlem sedan juni 200161 inlägg skickade till en dold iframe som tarhand om strängen så här
<%
strVAL = ""
For each item in request.form
If request.form(item) = "on" then
strVAL = strVAL & ","& item
end if
next
ANTAL = LEN(strVAL) - 1
strVAL = right(strVAL,ANTAL)
%>
<script language=javascript>
window.open('sida.asp?PROMPT=<%=strVAL%>','openit','width="500",height="500"')
</script>
inte snyggt men vad gör man :-)
Har ni några bättre tips så hör av er.
@ndersMedlem sedan juni 200032 969 inlägg Om du ger checkboxarna samma namn, blir resultatet en kommaseparerad värdelista.
<input type="checkbox" name="whatever" value="1">
<input type="checkbox" name="whatever" value="2">
<input type="checkbox" name="whatever" value="3">
Mvh
CantonaMedlem sedan juni 200161 inlägg whatever=1&whatever=2&whatever=3&whatever=4
@anders, är denna kommaseparerad :-)
GustavMedlem sedan jan. 20001 932 inlägg Kan man kontrollera att minst en av kryssrutorna är ikryssade om man använder den här koden i ett vanligt formmail?
Så här:
<input TYPE="checkbox" NAME="Kursinriktning" VALUE="Buss">
<input TYPE="checkbox" NAME="Kursinriktning" VALUE="Gods">
<input TYPE="checkbox" NAME="Kursinriktning" VALUE="Taxi">
När jag klickar på "SKICKA" så vill jag att det ska komma upp en Alert-ruta som säger att man måste klicka i minst en av rutorna.
Hur gör man det?
Tack på förhand!
Lösning till Gustav's problem:
<script>
function checkCheckboxes(){
var els = document.forms["foo"].elements, checkCounter = 0;
for (i=0;i<els.length;i++){
if(els[i].name == "bar"){
if (els[i].checked)
checkCounter ++;
}
}
if (checkCounter > 0)
return true;
else{
alert("Kryssa för åtminstone en av rutorna i gruppen bar.");
return false;
}
}
</script>
<form name="foo" onsubmit="return checkCheckboxes();">
Testgrupp:
<input TYPE="checkbox" NAME="test" VALUE="bar1">
<br />
Bar:
<input TYPE="checkbox" NAME="bar" VALUE="bar1">
<input TYPE="checkbox" NAME="bar" VALUE="bar2">
<input TYPE="checkbox" NAME="bar" VALUE="bar3">
<br />
<input TYPE="submit">
</form>
Med lite justeringar löste jag även cantonas problem. Elementet val innehåller en kommaformaterad lista med val.
<script>
function checkCheckboxes(){
var els = document.forms["foo"].elements, checkCounter = 0;
var checkoptions = new Array();
for (i=0;i<els.length;i++){
if(els[i].name == "bar"){
if (els[i].checked)
checkoptions[checkoptions.length] = els[i].value;
}
}
els["val"].value = checkoptions.join(",");
if (checkoptions.join(",").length > 0)
return true;
else{
alert("Kryssa för åtminstone en av rutorna i gruppen bar.");
return false;
}
}
</script>
<form name="foo" onsubmit="return checkCheckboxes();">
Testgrupp:
<input TYPE="checkbox" NAME="test" VALUE="bar1">
<br />
Bar:
<input TYPE="checkbox" NAME="bar" VALUE="1">
<input TYPE="checkbox" NAME="bar" VALUE="2">
<input TYPE="checkbox" NAME="bar" VALUE="3">
<input TYPE="hidden" NAME="val" VALUE="">
<br />
<input TYPE="submit">
</form>
GustavMedlem sedan jan. 20001 932 inlägg Tack så mycket!
Det funkar precis som jag vill.
Tack igen!
nitro2k01 skrev:
Lösning till Gustav's problem:
<script>
function checkCheckboxes(){
var els = document.forms["foo"].elements, checkCounter = 0;
for (i=0;i<els.length;i++){
if(els[i].name == "bar"){
if (els[i].checked)
checkCounter ++;
}
}
if (checkCounter > 0)
return true;
else{
alert("Kryssa för åtminstone en av rutorna i gruppen bar.");
return false;
}
}
</script>
<form name="foo" onsubmit="return checkCheckboxes();">
Testgrupp:
<input TYPE="checkbox" NAME="test" VALUE="bar1">
<br />
Bar:
<input TYPE="checkbox" NAME="bar" VALUE="bar1">
<input TYPE="checkbox" NAME="bar" VALUE="bar2">
<input TYPE="checkbox" NAME="bar" VALUE="bar3">
<br />
<input TYPE="submit">
</form>
Gammal tråd javisst, men behöver hjälp med liknande :)
Jag behöver exakt samma funktion fast mina checkboxar heter enligt följande:
pay_2004_06
pay_2004_07
pay_2004_08
pay_2004_09
osv..
Altså det är olika namn som ställer till det för mig...
Gemensamt är ju att alla checkboxar som ska kollas börjar på "pay_"
Tack på förhand..
mvh :)
Jag hade ett liknande problem för ett tag sedan och hittade den här lösningen som funkar fint f mig iaf (har tyvärr ingen länk t forumet jag hittade det på):
function validateRadios(f) {
if (!f) return;
var currEl, radArray, e = 0;
while (f.elements[e]) {
currEl = f.elements[e++];
if (currEl.type == 'radio' && currEl.name) {
radArray = f.elements[currEl.name];
for (var r=0; r<radArray.length; ++r) {
if (radArray[r].checked) break;
}
if (r == radArray.length) {
alert('Du har glömt svara på en eller flera frågor');
currEl.focus();
return false;
}
}
}
return true;
}
Och sen onSubmit="return validateRadios(this);" i form-taggen.
Om jag har förstått dig rätt så har du samma problem som jag hade med flera grupper av radioknappar där de har samma namn inom varje grupp(?)
/Edit - dum i huvudet, läste radio istället f checkbox, fint.. :OO