Avatar billede tommer Nybegynder
27. juli 2004 - 22:47 Der er 10 kommentarer og
1 løsning

fange selecteditem med javascript

jeg har en asp:RadioButtonList med to mulige valg 'ja' og 'nej'.

nu har jeg brug for i en javascript metode at kunne se hvilken af mulighederne der er valgt i asp:RadioButtonList'en, men hvordan gør jeg det ??
Avatar billede basementjack Nybegynder
27. juli 2004 - 22:54 #1
Hvor lader du ikke bare den RadioButton generate et postback, og så tester på det der?
Avatar billede tommer Nybegynder
27. juli 2004 - 23:17 #2
for at undgå at komme på serveren...
Avatar billede basementjack Nybegynder
27. juli 2004 - 23:19 #3
Okay, trælst.. Jeg snakkede om det med min lærer på et tidspunkt... Og han mente det var noget værre bøvl, så det gik vi fra..
Avatar billede tommer Nybegynder
27. juli 2004 - 23:28 #4
oki jeg ender nok med det samme, men det var da en sjov ting når man har TID.. ;-)
Avatar billede basementjack Nybegynder
27. juli 2004 - 23:35 #5
Ja, det er sjovt.. Men det er trælst at sidde fast hele tiden, fordi man er ny... :)
Avatar billede yellow Nybegynder
27. juli 2004 - 23:35 #6
Hvad skal du bruge værdierne i din javascript metode til? Validering inden submit?
Avatar billede tommer Nybegynder
27. juli 2004 - 23:36 #7
til at vise/skjule et span tag
Avatar billede yellow Nybegynder
28. juli 2004 - 00:59 #8
Man kan gøre det på flere måder, men som du selv nævner bliver det ofte noget bøvl.
Jeg fandt dog een løsning, der udnytter en CustomValidator's "link" mellem en servercontrol og client-side.
Det er ikke sådan man som regel benytter en CustomValidator, og jeg har ikke lige testet om det har nogle bivirkninger på siden mht. at submitte formen.
Men prøv ad - koden er ret simpel:

<%@ Page Language="C#" %>
<html>
<body>
<form runat="server">
  <ASP:RadioButtonList id="RadioButtonList1" runat="server">
      <asp:ListItem Value="Ja">Ja (vis span)</asp:ListItem>
      <asp:ListItem Value="Nej" Selected>Nej (gem span)</asp:ListItem>
  </ASP:RadioButtonList>
  <ASP:CustomValidator id="CustomValidator1" runat="server"
    ControlToValidate="RadioButtonList1"
    ClientValidationFunction="CheckRadio" /> 
  <span id="mySpan" style="display:none;">Magic span!</span>
</form>
<script language="javascript">
<!--
function CheckRadio(source, args) {
  document.getElementById("mySpan").style.display = (args.Value=="Ja")?"":"none";
}
// -->
</script>
</body>
</html>
Avatar billede tommer Nybegynder
28. juli 2004 - 09:52 #9
perfekt yellow det virker fint send et svar.
ved du om man kan gøre metoden dynamisk så jeg kan bruge den samme flere gange ?? det må være ("mySpan") der skal være dynamisk...
Avatar billede yellow Nybegynder
28. juli 2004 - 12:26 #10
Ok, for at være ærlig, var jeg ikke selv helt tilfredst med den Validator løsning. Den udskriver en masse ubrugelig kode til klienten :-/.

Jeg lavede en anden version. Eksempel på dynamisk funktionalitet inkluderet:

<%@ Page Language="C#" %>
<html>
<body>
<form runat="server">
  <ASP:RadioButtonList id="RadioButtonList1" runat="server" onclick="RadioEvent(this);">
      <asp:ListItem Value="Ja">Ja (vis span 1)</asp:ListItem>
      <asp:ListItem Value="Nej" Selected>Nej (gem span 1)</asp:ListItem>
  </ASP:RadioButtonList>
  <ASP:RadioButtonList id="RadioButtonList2" runat="server" onclick="RadioEvent(this);">
      <asp:ListItem Value="Ja">Ja (vis span 2)</asp:ListItem>
      <asp:ListItem Value="Nej" Selected>Nej (gem span 2)</asp:ListItem>
  </ASP:RadioButtonList>
  <span id="mySpan" style="display:none;">Magic span!</span>
  <span id="mySpan2" style="display:none;">Magic span 2!</span>
</form>

<script language="javascript">
<!--
function RadioEvent(source){
  arrRadio = source.getElementsByTagName("input");
  for(i=0;i<arrRadio.length;i++){
    if( arrRadio[i].checked ){
      ShowSpan(source.id,arrRadio[i].value);
      break;   
    }
  }   
}

function ShowSpan(sourceID, radioValue) {
  switch(sourceID){
    case "RadioButtonList1":
      document.getElementById("mySpan").style.display = (radioValue=="Ja")?"":"none";
      break
    case "RadioButtonList2":
      document.getElementById("mySpan2").style.display = (radioValue=="Ja")?"":"none";
      break
  }
}
// -->
</script>
</body>
</html>
Avatar billede tommer Nybegynder
28. juli 2004 - 22:29 #11
perfekt, takker mange gange ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester