首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

为何这段JS在aspx里不执行了?解决方法

2012-01-05 
为何这段JS在aspx里不执行了??aaa inputtype checkbox name checkbox value aaa onclick chec

为何这段JS在aspx里不执行了??
aaa <input       type= "checkbox "       name= "checkbox "       value= "aaa "       onclick= "check() ">          
    bbb <input       type= "checkbox "       name= "checkbox "       value= "bbb "       onclick= "check() ">          
    ccc <input       type= "checkbox "       name= "checkbox "       value= "ccc "       onclick= "check() ">          
    ddd <input       type= "checkbox "       name= "checkbox "       value= "ddd "       onclick= "check() ">      
    <input       type= "text "       name= "text1 "       readonly>      
   
    <script       language= "JavaScript ">      
       
    function           check()      
    {      
                    var       a       =       document.getElementsByName( "checkbox ");      
    var       b       =       document.getElementsByName( "checkbox ");      
                    var       s=0;      
                    for       (var       i=0;       i <a.length;       i++)      
                    //if(a[i].value!== " ")       s=s+parseInt(a[i].value);      
                                    if(a[i].checked)       s=s+(b[i].value);      
                                    document.form1.text1.value=s;      
       
    }      
       
    </script>

这段代码放在单独的html页面里可以执行,但放到 aspx页面里却不执行了.怎么回事????

[解决办法]
估计是你的checkbox是服务器端控件,生成html后name属性变了,你可以查看生成后的代码是什么

改成这样:

function check()
{
var objs = document.getElementsByTagName( "input ");
for (var i = 0; i < objs.length; i ++)
{
if(objs[i].type == "checkbox ")
{
if (objs[i].id.indexOf( "checkbox ") != -1)
{
if(objs[i].checked) s=s+(objs[i].value);
}
}

}
document.form1.text1.value=s;
}
------解决方案--------------------


把这段代码拷到你的ASPX页看看效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

<html xmlns= "http://www.w3.org/1999/xhtml " >
<head >
<title> Untitled Page </title>
<script language= "JavaScript ">

function check()
{
var a = document.getElementsByName( "checkbox ");
var b = document.getElementsByName( "checkbox ");
var s=0;
for (var i=0; i <a.length; i++)
//if(a[i].value!== " ") s=s+parseInt(a[i].value);
if(a[i].checked) s=s+(b[i].value);
document.form1.text1.value=s;

}

</script>
</head>


<body>

<form id= "form1 " runat= "server ">
aaa <input type= "checkbox " name= "checkbox " value= "aaa " onclick= "check() ">
bbb <input type= "checkbox " name= "checkbox " value= "bbb " onclick= "check() ">
ccc <input type= "checkbox " name= "checkbox " value= "ccc " onclick= "check() ">
ddd <input type= "checkbox " name= "checkbox " value= "ddd " onclick= "check() ">
<input type= "text " name= "text1 " readonly>
</form>
</body>
</html>
[解决办法]
再试试这样:
<input type= "text " id= "text1 " name= "text1 " readonly />

<script language= "JavaScript ">

function check()
{
var a = document.getElementsByName( "checkbox ");
var b = document.getElementsByName( "checkbox ");
var s=0;
for (var i=0; i <a.length; i++)
if(a[i].checked) s=s+(b[i].value);

// 记的给text1加上ID属性
document.getElementById( "text1 ")value=s;

}
[解决办法]
楼主的几处有问题 ,
1. document.form1.text1.value=s
这句有问题 应该是document.all.form1.text1.value=s
要不就是 document.forms[0].text1.value=s

2.document.getElementsByName 最好是 document.getElementsByTagName,不过这个倒没有太大关系

主要是第1点,这个脚本即使在html页面都无法执行的。
[解决办法]
看看你生成的客户端代码里面是否还有

name是否还是 checkbox
如果有
document.getElementsByName( "checkbox ");就没有问题


[解决办法]
另外
if(a[i].checked) s=s+(b[i].value);
应该写成
s = s + a[i].value + ", ";
否则不好得到值

<script type= "text/javascript ">
function check()
{
var a = document.getElementsByName( "checkbox ");
var s= " ";
for(i=0;i <a.length;i++)
{
if(a[i].checked) s = s + a[i].value + ", ";
}
document.Form1.text1.value=s;
}
</script>

热点排行