上面的不对,又改了一下GetThree,但总是报checked为空或不是对象,怎么回事呢?
function GetThree(obj)
{
var v=obj.valuevar vs_value=''
var vs=document.getElementsByName("subject");
for (var i=0 ; i<=vs.length ;i++)
{
if (vs[i].checked)
{
vs_value=vs[i].value
}
}
var div=document.getElementById('test3')
div.innerHTML=""
var str=''for(var i=0;i<a.length;i++)
{
if(a[i][0]==vs_value&&a[i][1]==v)
{
if(str.indexOf((a[i])[2])>-1)
{
//do nothing
}
else
{
str+=a[i][2]+','
}
}
}var Strand=str.substring(0,str.length-1).split(',')for(var i=0;i<Strand.length;i++)
{
div.innerHTML+=("<input type=radio value='"+Strand[i]+"' name='strand' id='strand' >"+Strand[i]+"<br>")
}
document.getElementById("strand").click()
}

解决方案 »

  1.   

    然后第三组RADIO就不显示了。
    var vs_value=''
    var vs=document.getElementsByName("subject");
    for (var i=0 ; i<=vs.length ;i++)
    {
    if (vs[i].checked)
    {
    vs_value=vs[i].value
    }
    }
    这快有问题吗?
      

  2.   

    我记得上次我答过的吧http://blog.csdn.net/bluedestiny/archive/2006/05/23/752106.aspx
      

  3.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document - http://www.never-online.net </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="never-online, blueDestiny">
    <META NAME="Keywords" CONTENT="never-online, blueDestiny">
    <META NAME="Description" CONTENT="http://www.never-online.net">
    <style>
    body, pre
    {
    font-size: 0.9em;
    font-family: verdana;
    }
    .copyright
    {
    text-align: center;
    font-size: 1em;
    }
    </style>
    </HEAD>
    <BODY>
    <script language="javascript">
    <!--//aDs = [ [id, pid, value, txt] ];
    var aDs = [
    [1, 0, 'v1', 't1'],
    [2, 1, 'v2', 't2'],
    [3, 1, 'v3', 't3'],
    [4, 3, 'v3', 't4'],
    [5, 3, 'v4', 't5'],
    [6, 2, 'v6', 't6']
    ];
    //aRs = [ ['container_uid','radioGroup1'] ];
    var aRs = [
    ['rs_first', 'g_f'],
    ['rs_second', 'g_s'],
    ['rs_third', 'g_t']
    ];function build_rg (name, val, txt, idx, id) {
    var sHtml = "<input type=\"radio\" name=\"" +name+ "\" value=\"" +val+ "\" val=\"" +id+ "\" onclick=\"change_grp(" +idx+ ")\">"
    + "" +txt+ "";
    return sHtml;
    };function build_rs (idx) {
    var sHtml = "";
    for (var i=0; i<aDs.length; i++) {
    if (aDs[i][1] == 0)
    sHtml += build_rg(aRs[0][1], aDs[i][2], aDs[i][3], 0, aDs[i][0]);
    }build_html(0, sHtml);
    change_grp(idx);
    };function change_grp (idx) {
    function iChange(idx) {
    var sHtml = "";
    var cnt = 0;
    for (var i=idx; i<aDs.length; i++) {
    if (idx==0) {
    continue;
    }
    else {
    var o = document.getElementsByName(aRs[idx-1][1]);
    for (var j=0; j<o.length; j++) {
    if (o[j].checked) {
    val = o[j].getAttribute("val");
    }
    else {
    val = o[0].getAttribute("val");
    }
    }
    }
    if (aDs[i][1] == val) {
    sHtml += build_rg(aRs[idx][1], aDs[i][2], aDs[i][3], idx, aDs[i][0]);
    cnt++;
    }
    }
    if (cnt==0) sHtml = '没有数据';
    build_html(idx, sHtml);
    }
    for (var i=idx+1; i<aRs.length; i++) {
    eval("iChange(" +i+ ")");
    }
    };function build_html (idx, sHtml) {
    if (!getById(aRs[idx][0])) return;
    getById(aRs[idx][0]).innerHTML = sHtml;
    };var getById = document.getElementById;
    -->
    </script>
    <div id='rs_first'></div>
    <div id='rs_second'></div>
    <div id='rs_third'></div>
    <SCRIPT LANGUAGE="JavaScript">build_rs(0)</SCRIPT>
    <h4 class="copyright"> Power By blueDestiny, never-online, <a href="http://www.never-online.net" _fcksavedurl="http://www.never-online.net">http://www.never-online.net</a> </h4>
    </BODY>
    </HTML>
      

  4.   

    for (var i=0 ; i<=vs.length ;i++)//o<vs.length,小于等于的话会多循环一次
    还有HTML所有的控件ID必须是不同的Name可以相同
      

  5.   

    而且第三组中的内容有时不对,不是根据第一和第二组的选择得到第三组的内容,但还不是都不对,大部分是对的
    //是因为我查第三次的时候没有判断第一个Radio吧
      

  6.   

    我在GetThree中加入了:
    var vs_value=''
    var vs=document.getElementsByName("subject");
    for (var i=0 ; i<vs.length ;i++)
    {
    if (vs[i].checked)
    {
    vs_value=vs[i].value
    }
    }
    和:
    if(a[i][0]==vs_value&&a[i][1]==v)应该就能根据第一个Radio和第一个Radio的选择取第三个了吧?
    我觉得代码应该没问题了啊,vs_value=vs[i].value可以正确取出第一个Radio的选择内容,但调用GetThree时总是报checked为空或不是对象,然后第三组RADIO就不显示了,这是怎么回事呢?能是ID相同的问题吧?我把ID都去掉了,也是报这个错误啊?
      

  7.   

    mingxuan3000(铭轩) ,只是
    <SCRIPT LANGUAGE="JavaScript">
    a[a.length]=new Array(<%=c_sj%>)//用一个List把数据库取到的内容循环加到a中
    </SCRIPT>
    这里省略了数据库取数据部分,关于radio的都在了
      

  8.   

    a[a.length]=new Array(<%=c_sj%>)//把一 2 3 的数据都写几个好能运行
      

  9.   

    一语点醒梦中人啊,多谢xxuu503(我爱郭芙蓉!) 的QQ指点!
    判断加个vs[i].type=="radio"就好了,哎,我昨天调了一下午啊!