Link to home
Start Free TrialLog in
Avatar of Fweddie
Fweddie

asked on

On change event for VBScript Radio button

Here's my code:

<SCRIPT LANGUAGE="VBScript">
<!--

private sub optRate_onChange()
     
     msgbox "Hello"
     
End sub

'More code here at the bottom

</SCRIPT>

and here's part of the HTML code

<TR class=clsoddrow>
     <TD>
        <INPUT type="radio" name="optRate" value="1"  >Branch-Quoted
    </TD>
    <TD>
     <INPUT type="text" name="txtBranchRate" maxlength="20" size="22" value="" >
   </TD>
  <TD colspan=2> &nbsp; </TD>
     </TR>
     <TR class=clsevenrow>
          <TD><INPUT type="radio" name="optRate" value="2"  >Treasury-Quoted

          </TD>
          <TD>
               
               <INPUT type=TEXT name="txtTreasuryRate" size=14 maxlength=14 value="0">
          </TD>
          <TD> Reference Number </TD>
          <TD>
               <INPUT type="text" name="txtTreasuryRefNo" maxlength="20" size="22" value="" >
          </TD>
     </TR>

what i want to happen is that everytime someone click on the radio button, it would go in my function (I don't know if i should use onchange or onclick) Also, how would i know which radio button is currently selected?
Avatar of third
third
Flag of Philippines image

why use vbscript? it's not supported on NS browsers.


function radioclick(){
  var obj = document.forms[0];
  for(var i=0;i<obj.length;i++){
    if((obj.elements[i].type=="radio") && (obj.elements[i].checked)){
      alert(obj.elements[i].value);
      //execute your function
    }
  }
}
btw, you can call that as

<INPUT type="radio" name="optRate" value="1" onclick="radioclick()">

<INPUT type="radio" name="optRate" value="2" onclick="radioclick()">

or do it directly (without using the function),

<INPUT type="radio" name="optRate" value="1" onclick="alert(this.value);//execute function here">
<INPUT type="radio" name="optRate" value="2" onclick="alert(this.value);">
why use vbscript? it's not supported on NS browsers.


function radioclick(){
  var obj = document.forms[0];
  for(var i=0;i<obj.length;i++){
    if((obj.elements[i].type=="radio") && (obj.elements[i].checked)){
      alert(obj.elements[i].value);
      //execute your function
    }
  }
}
ooppss, ignore it. it's just the same with the first post.
Avatar of Fweddie
Fweddie

ASKER

I'm using RDS and I have to use VBScript (unless there's a way to call a VBScript function from Javascript). Javascript would have been easier on this :(
ASKER CERTIFIED SOLUTION
Avatar of avner
avner

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
<html>
<head>
<script language="vbscript">
function radioclick()
  dim obj, i
  set obj = document.forms(0)
  for i=0 to obj.length-1
    if (obj.elements(i).type="radio") and (obj.elements(i).checked) then
      msgbox "the value of the selected radio button is " + obj.elements(i).value
      'execute function here ....
      exit for
    end if
  next
end function
</script>
</head>
<body>
<form>
  <input type="radio" name="optRate" value="1" onclick="radioclick">Branch-Quoted
  <input type="text"  name="txtBranchRate" maxlength="20" size="22" value="" >
  <input type="radio" name="optRate" value="2" onclick="radioclick">Treasury-Quoted
  <input type="text"  name="txtTreasuryRate" size=14 maxlength=14 value="0">
  <input type="text"  name="txtTreasuryRefNo" maxlength="20" size="22" value="" >
</form>
</body>
</html>
Avatar of Fweddie

ASKER

Here's my code now:

<SCRIPT LANGUAGE="VBScript">
<!--
Private Function Radio_click()

msgbox "HELLO"

end Function

'-- more scripts here

</SCRIPT>

     <TR class=clsevenrow>
          <TD><input type="radio" name="optRate" value="1" onclick="Radio_click()">Branch-Quoted              
          </TD>
          <TD>
               <INPUT type="text" name="txtBranchRate" maxlength="20" size="22" value="" >
          </TD>
          <TD colspan=2> &nbsp; </TD>
     </TR>
     <TR class=clsoddrow>
          <TD><input type="radio" name="optRate" value="2" onclick="Radio_click()">Treasury-Quoted          
          </TD>
          <TD>              
               <INPUT type=TEXT name="txtTreasuryRate" size=14 maxlength=14 value="196">
          </TD>
          <TD> Reference Number </TD>
          <TD>
               <INPUT type="text" name="txtTreasuryRefNo" maxlength="20" size="22" value="" >
          </TD>
     </TR>



i now get an "Object Expected" error when i click on the radio button...
What browser you use ?

BEcause i don't have this problem.
Avatar of Fweddie

ASKER

please note that i have a javascript part before the vbscript part. would this be a problem? (conflicting script languages perhaps?)
remove private from the function

Function Radio_click()

msgbox "HELLO"

end Function


btw, have you tried my example?
Avatar of Fweddie

ASKER

ok, got it to work. I just added the VBScript part on top of the java script part

so instead of

<script language=javascript>
//scripts here
</Script>
<script language=vbscript>
'--scripts here
</Script>


i did

<script language=vbscript>
'--scripts here
</Script>

<script language=javascript>
//scripts here
</Script>

Avatar of Fweddie

ASKER

i've modified third's code to reproduce the error

<html>
<head>
<script language="vbscript">
function radioclick()
 dim obj, i
 set obj = document.forms(0)
 for i=0 to obj.length-1
   if (obj.elements(i).type="radio") and (obj.elements(i).checked)

then
     msgbox "the value of the selected radio button is " +

obj.elements(i).value
     'execute function here ....
     exit for
   end if
 next
end function
</script>
<script language="javascript">
function Window_OnLoad()
{

alert("Hello");

}
</script>
</head>
<body onload="Window_OnLoad();">
<form>
 <input type="radio" name="optRate" value="1"

onclick="radioclick">Branch-Quoted
 <input type="text"  name="txtBranchRate" maxlength="20" size="22"

value="" >
 <input type="radio" name="optRate" value="2"

onclick="radioclick">Treasury-Quoted
 <input type="text"  name="txtTreasuryRate" size=14 maxlength=14

value="0">
 <input type="text"  name="txtTreasuryRefNo" maxlength="20" size="22"

value="" >
</form>
</body>
</html>
"i've modified third's code to reproduce the error"

??
Avatar of Fweddie

ASKER

found the error.
it seems that i have to do the vbscript part first before the java script part. also, i had to remove the semi colon on the onload function when calling it