Just nu i M3-nätverket
Gå till innehåll

Validera formulär med Javascript & ASP


ÅsaSa

Rekommendera Poster

Hej

 

Jag har ett ASP-formulät med dynamiska radio-knappar (GetRows()). Jag behöver ha en kontroll på sidan så att 1 knapp nmarkeras. På en sida med vanliga radio-knappar har jag följande javascript:

 

<script type="text/javascript" language="JavaScript">
<!
n=0
function rakna(w){
(document.konsult1.typ[w].checked==true)? n++ : n;
}
function koll(){
if(document.konsult1.typ[1].checked!=true){
if(n<1){alert("Vänligen välj en rad!"); return false}
}
}
//>
</script>

<form  id="konsult1" name="konsult1" onsubmit="return koll()" action="" method="post">

<input id="typ" type="radio" name="typ" value="Uppdragsfragor" onclick="rakna(0)"/>Uppdragsfrågor<br />
<input id="typ" type="radio" name="typ" value="Matarstallning" onclick="rakna(1)"/>Mätarställning</td>

 

Problemet nu är ju att jag ju inte vet hur många knappar som kommer att dyka upp.

 

Min ASP-kod på sidan med de dynamiska radio-knapparna ser ut så här:

 

<%For i = 0 to uBound(arrKund,2)%>
<input name="cID" type="radio" value="<%=arrKund(0, i)%>" id="cID"/>
<input name="cVnr" type="hidden" value="<%=arrKund(1, i)%>" id="cVnr" />
V.&nbsp; <%=arrKund(2, i)%>,&nbsp; <%=arrKund(4, i)%>:&nbsp;<%=arrKund(5, i)%>&nbsp;-&nbsp;<%=arrKund(6, i)%>
<hr id="Hr1" size="1" color="#696969" style="width: 100%; text-align: left"  />
<%Next%>
<input name="action" type="hidden" value="save" />

 

 

/ÅsaSa

 

Tråden flyttad tillbaks till Javascript av moderator

 

[inlägget ändrat 2009-02-26 15:09:51 av Cluster]

Länk till kommentar
Dela på andra webbplatser

Problemet nu är ju att jag ju inte vet hur många knappar som kommer att dyka upp.
Det torde väl vara värdet på uBound(arrKund,2) minus ett.

 

/Cluster

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

I do not fear computers. I fear the lack of them

--------> http://eforum.kicks-ass.net <---------

 

Länk till kommentar
Dela på andra webbplatser

Yes, men hur skriver jag?

 

När det är ett fast antal radio-knappar så skriver jag ju onclick="rakna(0)", onclick="rakna(1) osv i input, men hur skriver jag nu???

 

 

Länk till kommentar
Dela på andra webbplatser

Jag kan ge dig en lösning, men först vill jag kontrollera att du tänkt igenom upplägget ordentligt. Radioknappar är en typ av val som i de allra flesta fall kräver att något val redan är gjort i förväg (främst för att du inte per default kan avmarkera allt när du väl kryssat i en av dem). Fundera därför på om du inte ska ha en statisk radioknapp utskriven innan loopen, som är checked från början (ex. "Vet ej" eller dylikt som label), på detta sätt ger du användaren en chans att låta bli att göra ett aktivt val om denne redan kryssat i något annat först.

 

Länk till kommentar
Dela på andra webbplatser

Hej

 

Knapparna ska finnas på en sida där konsulter ska rapportera sitt uppdrag, så det finns inget "vet ej". Antingen har de varit i butiken och ska rapportera eller så loggar de inte in på sidan. Anledningen till att knapparna blir dynamiska är att antalet butiker petr körplan varierar per uppdrag.

 

 

[inlägget ändrat 2009-02-25 09:57:18 av ÅsaSa]

Länk till kommentar
Dela på andra webbplatser

Ok. Så det du vill kontrollera är att något val (via JS) har gjorts?

Utan att ha tid att titta igenom dina redan postade rader så utgår jag från att alla radioknappar har samma värde på "name"-attributet. Med detta som grund så kan du kontrollera att något val har gjorts med följande:

 

var radioColl=getElementsByName('NamnetDuGivitDem');
var isChecked=false;
for(i=0;i<radioColl.count;i++)
{
  isChecked=isChecked || (radioColl[i].checked);
}

// Om isChecked är true härefter så är något ikryssat

 

Förslagsvis lägger du in detta i en funktion som returnerar true eller false och använder detta värde i övrig kontrollfunktionalitet.

[inlägget ändrat 2009-02-25 10:44:06 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

där konsulter ska rapportera sitt uppdrag, så det finns inget "vet ej"

Sidospår - jag är konsult och jag har sett ett antal uppdrag där man angående målet utbrister "vet ej" ;)

 

Länk till kommentar
Dela på andra webbplatser

Jag är ledsen, men det här är helt nytt för mig, så jag skulle behöva lite mer vägledning.

 

När jag vet hur många radioknappar det finns så skriver jag ju:

 

<script type="text/javascript" language="JavaScript">
<!
n=0
function rakna(w){
(document.konsult1.typ[w].checked==true)? n++ : n;
}
function koll(){
if(document.konsult1.typ[1].checked!=true){
if(n<1){alert("Vänligen välj en Butik!"); return false}
}
}
//>
</script>

<form  id="konsult1" name="konsult1" onsubmit="return koll()" action="" method="post">

<input id="typ" type="radio" name="typ" value="Butik1" onclick="rakna(0)"/>Butik1<br />
<input id="typ" type="radio" name="typ" value="Butik2" onclick="rakna(1)"/>Butik2</td>

 

Men nu när jag inte vet antalet radioknappar, var lägger jag in koden du skrev???

 

 

[inlägget ändrat 2009-02-25 11:35:31 av ÅsaSa]

Länk till kommentar
Dela på andra webbplatser

Ändra din funktion koll() till följande (samt lägg till de första två raderna också):

 

function koll()
{
  var radioColl=getElementsByName('typ');
  var isChecked=false;
  for(i=0;i<radioColl.count;i++)
  {
     isChecked=isChecked || (radioColl[i].checked); 
  }
  if(!isChecked)
  {
        alert("Vänligen välj en Butik!"); 
        return false
  } 
  else
  {
        return true;
  }

}

 

 

Länk till kommentar
Dela på andra webbplatser

Desperationen kommer smygande... Det funkar inte.

 

Jag har skrivit följande script:

 

<script type="text/javascript" language="JavaScript">
<!--

function koll()
{
  var radioColl=getElementsByName('cID');
  var isChecked=false;
  for(i=0;i<radioColl.count;i++)
  {
     isChecked=isChecked || (radioColl[i].checked); 
  }
  if(!isChecked)
  {
        alert("Vänligen välj en Butik!"); 
        return false
  } 
  else
  {
        return true;
  }

}
//-->
</script>

 

I Formfältet har jag lagt till: onsubmit="return koll()"

 

Men ska jag inte ha en onclick i input fältet? När jag vet hur många radioknappar det blir så skriver jag ju onclick="rakna(0)", onclick="rakna(1) osv i input, men hur skriver jag nu???

 

Förvirringen är total...

 

 

Länk till kommentar
Dela på andra webbplatser

Hjääälp, nu kommer inte bara desperationen smygande... Den golvar mig totalt.

 

För dem som kan det här så ser det säkert helt självklart ut hur jag ska göra, men jag är helt novis och får inte till det hur jag än försöker (se tidigare inlägg).

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...