惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tor Project blog
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 【当耐特】
G
Google Developers Blog
J
Java Code Geeks
The Cloudflare Blog
Attack and Defense Labs
Attack and Defense Labs
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
Cisco Talos Blog
Cisco Talos Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
I
Intezer
Jina AI
Jina AI
T
Tenable Blog
P
Palo Alto Networks Blog
Project Zero
Project Zero
D
DataBreaches.Net
Hugging Face - Blog
Hugging Face - Blog
The Hacker News
The Hacker News
F
Full Disclosure
Cloudbric
Cloudbric
量子位
H
Heimdal Security Blog
K
Kaspersky official blog
有赞技术团队
有赞技术团队
罗磊的独立博客
V
Vulnerabilities – Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News
Recent Announcements
Recent Announcements
WordPress大学
WordPress大学
GbyAI
GbyAI
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
Recorded Future
Recorded Future
Security Archives - TechRepublic
Security Archives - TechRepublic
AI
AI
Webroot Blog
Webroot Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
The Exploit Database - CXSecurity.com
Apple Machine Learning Research
Apple Machine Learning Research
C
Cybersecurity and Infrastructure Security Agency CISA
H
Hacker News: Front Page
Latest news
Latest news

博客园 - zqstc

The following module was built either with optimizations enabled or witherout debug information QQQQQQQ sql 2005 分页 Java学习路线图 SQL 链接服务器及权限限制 apache与tomcat整合 eclipse学习 Eclipse3.6版本汉化 Eclipse 的版本历史 MOSS2007下载 MOSS安装全过程 SQL简繁体转换 SQL2000 递归问题 Tomcat+JSP学习一 Office2003关联的word文档图标无法显示解决方案 用于主题检测的临时日志(f328f8e5-34df-4189-bccc-47d1025dc7dd - 3bfe001a-32de-4114-a6b4-4005b770f6d7) wa gaga Requested registry access is not allowed(不允许所请求的注册表访问权) SQL学习 continue~~
JavaScript---radio组
zqstc · 2010-05-11 · via 博客园 - zqstc

  很多人都觉得在javascript声明一个变量,加var和不加var没有什么区别,实际上是一个错误的观点,如果在函数外面,也就是说在window区域加不加var确实是一样,因为都会是全局变量的效果,而如果在函数内部,加var就是局部变量,不加是全局变量。
function test(){  
  var1 = 2;
  alert(var1);     
}  
test();  
alert(var1);
这样可以显示为2
function test(){  
var var1 = 2;
  alert(var1);     
}  
test();  
alert(var1);
则为变量未定义错误
this多用于函数内部,它永远指向调用他的那个对象,看看下面的例子就明白了
var test={
   a:"test",
   msg:function(){
     a="1234";
     alert(this.a);
var msg1= function(){
alert(this.a);
     }
     msg1();
   }
}
test.msg(); 这样会分别显示 "test" ,"1234".
但this也不是这么简单,在看看下面的例子
function test1()  
{  
  this.var01 = "test";
}
function test2()  
{
  alert(var01);
}
var a= new test1();
test1();
test2();
alert(a.var01);
都可以得到"test".
可以发现var01变量既是一个全局变量,又是test1内的成员变量。也就是说,如果在函数内部用this定义的变量,如果这个函数你不是直接来运行,而是作为一个类来new的话,虽然函数也要执行一遍,但里面的this定义的 变量是作为类的成员变量来定义的,也就是一个局部变量,上面的测试代码,如果去掉test1();  test2()运行就是未定义变量错误了。
说到变量,最后提一下js变量无类型的说法,这个说法本身没有错,但js变量无类型,这话很模糊,有的人会理解成js 里面没有数据类型。这显然是错误的,js 里面也有数字,字符,布尔,类等数据类型。说变量无类型,指的是刚定义一个变量的时候,这个变量是没有类型的,当你给它赋值的时候,值是什么类型,那这个变量就是什么类型了

js获取单选按钮(radio)组的值和修改选中项

<input name="radio1" type="radio" value="1">
<input name="radio1" type="radio" value="2">
<input type="button" onClick="checks()">

JScript code
    function checks()
    {
        var radios=document.getElementsByName("radio1");
        for(var i=0;i<radios.length;i++)
        {
            if(radios[i].checked==true)
            {
                alert(radios[i].value);
            }
        }
    }

获取单选按钮(radio)组的值和修改选中项
看到很多帖子里说js获取单选按钮(radio)组的值可以直接用document.getElementById("oper").value,虽然跟单选按钮组一样的下拉列表(也

是列表项的数组)也是一个数组,用这种方式可以获到下拉列表的值,但是单选按钮组却获不到所选的值。仔细研究了下,总结如下:

与下拉列表不同,单选按钮须用this.form.oper或者document.getElementsByName('oper')方式获取该数组对象,document.getElementById

('oper')不能获取该数组对象(select可以)。而且要获取值须通过一循环判断获取,不能直接用.value(select可以)。而要改变单选按钮组的

选中项,也须用循环判断改变各个单选按钮的value。

测试代码radio.html 如下:

=============================================================================

<html>

<head></head>

<script language="javascript">

//求单选按纽的值,适用单选项及多选项。未选返回false;有选择项,返回选项值。

function getRadio(oRadio){

var oRadioLength= oRadio.length;

var oRadioValue = false;

//alert("oRadioLength:["+oRadioLength+"]");

if (oRadioLength== undefined){

      if (oRadio.checked){

       oRadioValue = oRadio.value;

      }

}else{

      for (i=0;i<oRadioLength;i++){

       //alert("oRadio["+i+"]:"+oRadio[i].checked+"/"+oRadio[i].value);

       if (oRadio[i].checked){

        oRadioValue = oRadio[i].value;

        break;

       }

      }

}

return oRadioValue;

}

//方法改进:

//求单选按纽的值,传radio名字作为参数。未选返回false;有选择项,返回选项值。

function getRadioValue(name){

var radioes = document.getElementsByName(name);

for(var i=0;i<radioes.length;i++)

{

     if(radioes[i].checked){

      return radioes[i].value;

     }

}

return false;

}

//通过值修改所选中的单选按钮

function changeRadio(oRadio,oRadioValue){        //传入一个对象

for(var i=0;i<oRadio.length;i++) //循环

{

        if(oRadio[i].value==oRadioValue) //比较值

        {

         oRadio[i].checked=true; //修改选中状态

         break; //停止循环

        }

}

}

//改进:

//通过值修改所选中的单选按钮

function setRadio(name,sRadioValue){        //传入radio的name和选中项的值

var oRadio = document.getElementsByName(name);

for(var i=0;i<oRadio.length;i++) //循环

{

        if(oRadio[i].value==sRadioValue) //比较值

        {

         oRadio[i].checked=true; //修改选中状态

         break; //停止循环

        }

}

}

</script>

<body>

<form name="frm">

<input type="radio" name="oper" value="agree"        >同意</td>

<input type="radio" name="oper" value="downchange" checked>下发修改</td>

<input type="radio" name="oper" value="refuse">拒保</td>

<input type="radio" name="oper" value="report" >上报 </td>

<br>

alert('result:'+getRadio(this.form.oper))

<input type="button" name="test1" value="按钮1" onclick="alert('result:'+getRadio(this.form.oper));">     

<br>

alert('result:'+getRadio(document.getElementById('oper')))

<input type="button" name="test2" value="按钮2" onclick="alert('result:'+getRadio(document.getElementById('oper')));">

<br>

alert(this.form.oper.value)

<input type="button" name="test3" value="按钮3" onclick="alert(this.form.oper.value);">

<br>

changeRadio(this.form.oper,"上报")

<input type="button" name="test4" value="按钮4" onclick="changeRadio(this.form.oper,'report');">

<br><br><br><br>  

<select id="slt">

<option value="agree" >同意</option>

<option        value="downchange" selected>下发修改</option>

<option value="refuse">拒保</option>

<option        value="report">上报</option>

</select>

<br>

alert(this.form.slt.value)

<input type="button" name="test5" value="按钮5" onclick="alert(this.form.slt.value);">

<br>

document.getElementById('slt')[2].innerText)

<input type="button" name="test6" value="按钮6" onclick="alert(document.getElementById('slt')[2].innerText);">

</form>

</body>