<input name="del" type="button" value=" 删 除 " border="0" class="s02" onClick="return delchked(this);">
改为这样看看呢?

解决方案 »

  1.   

    onClick="return delchked( this.form );你这里this.form有问题,this应该指的是这个input
      

  2.   

    for ( j = 0 ; j <= document.forms[0].selectone.length ; j++ ) {
    ==》 for ( j = 0 ; j < document.forms[0].selectone.length ; j++ ) {下标显然会越界。有的时候错误不显示是IE的问题。document.forms[0].selectone真的多于一个吗?如果是动态生成的最好用getElementsByName函数来引用控件数组:function delchked ( chkdelform ) {
    var j;
    var truej = 0;
    var tmpElm = document.getElementsByName("selectone");
    for ( j = 0 ; j <tmpElm.length ; j++ ) {
    if ( tmpElm[j].checked) {
    truej++;
    }
    }
    ......
      

  3.   

    onClick="return delchked( this.parent );我不知道这样行不行
      

  4.   

    netying(鹰击长空):
    做个试验试试:
    <form name="dataform" method="post">
    <input type=button value=test onclick="alert(this.form.name)">
    </form>
      

  5.   

    我这个函数是应用在动态生成的CHECKBOX上,就像邮箱系统里面列出的一封封邮件一样,前面的CHECKBOX,是依据数据记录的条数相应增加的
      

  6.   

    emu_ston(吃的就是没文化的亏) 呵呵,我错了~
      

  7.   

    to : emu_ston(吃的就是没文化的亏) 
    我用document.forms[0].selectone.length 和 document.forms[0].selectone[j].checked 的方法,在页面上其他的JS函数里运行的很好,所以可以断定也不是这个的问题!
      

  8.   

    呵呵,可以断定不少哪个问题?下标越界肯定是问题,而getElementsByName只是我的一个强烈建议,我并没说问题出在这里。不过既然你的checkbox真的是动态生成的,我继续建议你用getElementsByName来避免还没发生的问题。我帖的代码一般都是调试运行通过的,包括上面帖的。如果代码没有运行的话把完整代码帖出来吧。
      

  9.   

    完整代码是:
    <?php
    //实例化一个类
    require ( "class.php" );
    $myuser = new useroption ( );
    ?><html>
    <head>
    <title>用户类------定义增、删、改、查用户的方法</title>
    <meta http-equiv="Content-Language" content="zh-cn">
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <link rel="stylesheet" type="text/css" href="css.css">
    <SCRIPT LANGUAGE="JavaScript">
    <!--//当用户选择“全选按钮时,所有的复选框都被选上”
    function checkselect ( ) {
    var i; //全选
    if ( document.forms[0].select[0].checked ) {
    for ( i = 0 ; i <= document.forms[0].selectone.length ; i++ ) {
    document.forms[0].selectone[i].checked = true;
    }
    } //取消
    if ( document.forms[0].select[1].checked ) {
    for ( i = 0 ; i <= document.forms[0].selectone.length ; i++ ) {
    document.forms[0].selectone[i].checked = false;
    }
    } //反选
    if ( document.forms[0].select[2].checked ) {
    for ( i = 0 ; i <= document.forms[0].selectone.length ; i++ ) {
    if ( document.forms[0].selectone[i].checked == true ) {
    document.forms[0].selectone[i].checked = false;
    } else {
    if ( document.forms[0].selectone[i].checked == false ) {
    document.forms[0].selectone[i].checked = true;
    }
    }
    }
    }
    }//提交动作
    function submitchk( addform ) {
        addform = document.dataform;
    if ( ( addform.inputid.value == "" ) || ( addform.inputname.value == "" ) || ( addform.inputage.value == "" ) ) {
    alert( "有必填项未填,请填写完整!" );
    return false;
    } else {
    if ( confirm ( "确认添加用户?" ) ) {
    addform.action = "Added.php";
    addform.submit ( );
    return true;
    } else {
    return false;
    }
    }
    }function delchked ( chkdelform ) {
    chkdelform = document.dataform;
    var j;
    var truej = 0; //判断用户是否已经选择了要删除的数据 var tmpElm = document.getElementsByName("selectone"); for ( j = 0 ; j <= tmpElm.length ; j++ ) {
    if ( tmpElm[j].checked ) {
    truej ++;
    }
    } //如果已经选择了数据,先提示
    if ( truej > 0 ) {
    //对用户删除数据做进一步确认
    if ( confirm ( "是否删除所选项?提示:删除后,无法恢复的!" ) ) {
    chkdelform.action="Deleted.php";
    chkdelform.submit();
    } else {
    return false;
    } } else {
    alert ( "您未选择任何记录,无法处理!" );
    return false;
    }
    }
    //-->
    </SCRIPT>
    </head><body>
      

  10.   


    <!-- 显示数据 -->
    <form name="dataform" method="post">
     <table align="center" border="1" id="AutoNumber1" style="border-collapse: collapse" cellpadding="0" cellspacing="0" width="100%" bordercolor="#C0C0C0">
      <tr>
       <td bgcolor="#E1E1E1"><b></td>
       <td bgcolor="#E1E1E1"><b>用户ID</td>
       <td bgcolor="#E1E1E1"><b>用户姓名</td>
       <td bgcolor="#E1E1E1"><b>用户年龄</td>
       <td bgcolor="#E1E1E1"><b>用户修改</td>
      </tr>  <?php
      //连接数据库并检索数据
      $myuser->connectdb ( );
      $myuser->Retrieve ( );  while ( ( $myuser->row = mysql_fetch_array( $myuser->result ) ) ) {
      ?>  <tr>
       <td bgcolor="#EFEFEF"><input type="checkbox" name="selectone" value="<?php echo ( $myuser->row['id'] ); ?>"></td>
       <td bgcolor="#EFEFEF"><?php echo ( $myuser->row["id"] ); ?></td>
       <td bgcolor="#EFEFEF"><?php echo ( $myuser->row["name"] ); ?></td>
       <td bgcolor="#EFEFEF"><?php echo ( $myuser->row["age"] ); ?></td>
       <td bgcolor="#EFEFEF"><a href="javascript:void sfdf( );">修改</a></td>
      </tr>
      <?php
      }
      ?>  <tr>
       <td colspan="5" bgcolor="#E1E1E1">
        <br>
        <input type="radio" name="select" value="selectall" onClick="checkselect ( );">全选
        <input type="radio" name="select" value="unselect" onClick="checkselect ( );">取消
        <input type="radio" name="select" value="reverseselect" onClick="checkselect ( );">反选

       <td>
      </tr>  <tr>
       <td colspan="5" align="center" bgcolor="#E1E1E1">
        输入用户ID号 : <input name="inputid" type="text" value="" class="inputnormal" onKeyUp="if(isNaN(this.value)) this.value='';" onMouseout="this.className='inputnormal'" onMouseover="this.className='inputedit';this.focus();this.select();">
        输入用户名   : <input name="inputname" type="text" value="" class="inputnormal" onMouseout="this.className='inputnormal'" onMouseover="this.className='inputedit';this.focus();this.select();">
        输入用户年龄 : <input name="inputage" type="text" value="" class="inputnormal" onKeyUp="if(isNaN(this.value)) this.value='';" onMouseout="this.className='inputnormal'" onMouseover="this.className='inputedit';this.focus();this.select();">
       </td>
      </tr>  <tr>
       <td colspan="5" align="center" bgcolor="#E1E1E1">
        <br>
        <input name="add" type="button" value=" 添 加 " border="0" class="s02" onClick="return submitchk ( this.form );">
        <input name="del" type="button" value=" 删 除 " border="0" class="s02" onClick="return delchked ( this.form );">
        <input name="mod" type="button" value=" 查 询 " border="0" class="s02" onClick="">
    <br>
    <br>
       </td>
      </tr>
     </table>
    </form>
    </body>
    </html>
      

  11.   

    我自定义的PHP类可以不管,现在只解决JS部分响应的问题!
      

  12.   

    我的第一个回帖你没仔细看吗: for ( j = 0 ; j <= document.forms[0].selectone.length ; j++ ) {
    ==》 for ( j = 0 ; j < document.forms[0].selectone.length ; j++ ) {为什么还要写
    for ( j = 0 ; j <= tmpElm.length ; j++ ) {
    ?改为
    for ( j = 0 ; j < tmpElm.length ; j++ ) {
    后通过。
      

  13.   

    你的这个我也试了,不行!!!!!~~~~~~~~~~~~~~他妈的,我自己解决了,把函数一分为二,就搞定了~~改成://删除记录
    function delit ( myform ) {
      myform = document.dataform;
      worn = "是否删除所选项?提示:删除后,无法恢复的!"
      if ( confirm ( worn ) )   {
        myform.action="Deleted.php";
        myform.submit ( );
      }
    }//检查是否已选定删除项
    function delchked ( ) {
     var myform = document.dataform;
     var j;
     var truej;
     truej = 0;
     for ( j = 0 ; j < document.all.selectone.length ; j++ ) {
     if ( document.all.selectone[j].checked == true ) {
     truej++;
     }
     }
     if ( truej > 0 ) {
     delit ( myform );
     } else {
     alert ( "您未选择任何记录,无法处理!" );
     return false;
     }
    }但是我还是不知道别的地方用的很好的<=,到了这里就要变成<  ????
      

  14.   

    顺便说一下:
    首先,这里有基本问题    <input type="radio" name="select" value="selectall" onClick="checkselect ( );">全选
        <input type="radio" name="select" value="unselect" onClick="checkselect ( );">取消
        <input type="radio" name="select" value="reverseselect" onClick="checkselect ( );">反选不要用form,select,input这样的关键字来做name或者id。其次,checkselect函数的三个循环全部存在相同的越界错误而不像你说的“其他的所有JS脚本都工作的很好”。但是因为发生错误的时候操作已经完成所以你没有察觉:for ( i = 0 ; i <= document.forms[0].selectone.length ; i++ ) {
      

  15.   

    emu_ston(吃的就是没文化的亏) 不管怎么样,感谢你,看来我真是“吃的就是没文化的亏”!