小弟在做一个程序,其中用到几个javascript函数
系统提示:'objForm.intCurrentPage'为空或不是对象
错误类型:5007
1.
//功能:取得错误信息并弹出显示(如果有)、删除成功后执行查询文件的查询函数
//输入参数:
//  frame:查询文件所在的frame的名称
//调用:列表文件装载完毕后,调用本函数(onload="DoLoadList()")
//===================================================================function DoLoadList(frame)
{
    hideProcessBar(this); //隐藏进度条
    try
    {
        if (typeof(frame) == 'undefined')   frame = "parent.left_frame";
        var flag = divError.innerText;
        var status  = document.getElementById("statusList").value;
        
        if (flag != "" && status=="delete" )
        {
            alert("操作失败!\n\n"+flag);
            return false;
        }
        if (flag != "")
        {
            alert(flag);
            return false;
        }
        if (status == "delete")
        {
           eval(frame+".DoSearch();");
        }
    } catch (e)  {
        processException(e);
    }
}
2.
//功能:设置查询文件内隐藏变量的当前页号、总页数、并提交查询。
//输入参数:
//sValue:第一页(First),上一页(Prev),下一页(Next),最后一页(Last)
//frame:查询文件所在的frame的名称
//调用:列表文件调用装载完毕后调用
//===================================================================function DoPage(sValue,frame)
{
try
{
        if (typeof(frame) == 'undefined')   frame = "parent.left_frame";
        eval("var objForm = "+frame+".document.getElementById(\"frmSearch\");");
//var objForm=frame.document.getElementById("frmSearch");
var intPage=parseInt(objForm.intCurrentPage.value);
var intTotalPages=parseInt(objForm.intTotalPages.value);
switch (sValue) {
case "First":
{
if (intPage>1)
{
                    showProcessBar(this); //显示进度条
objForm.intCurrentPage.value=1;
objForm.submit();
}
break;
}
case "Prev":
{ if (intPage>1)
{
                    showProcessBar(this); //显示进度条
objForm.intCurrentPage.value=intPage-1;
objForm.submit();
}
break;
}
case "Next":
{ if (intPage<intTotalPages)
{
                    showProcessBar(this); //显示进度条
objForm.intCurrentPage.value=intPage+1;
objForm.submit();
}
break;
}
case "Last":
{ if (intPage<intTotalPages)
{
                    showProcessBar(this); //显示进度条
objForm.intCurrentPage.value=intTotalPages;
objForm.submit();
}
break;
}
case "ListAll":
{
    if (intTotalPages > 1)
    {
                    showProcessBar(this); //显示进度条
                    objForm.intCurrentPage.value=1;
                    objForm.intTotalPages.value=-1; //用来做标志判断
                    objForm.submit();
                }
break;
}
}
}
catch (e)
{
        processException(e);
}
}
3.
//功能:设置列表文件及查询文件的页号、总页数。
//输入参数:
//totalPage:总页数
//currPage:当前页号
//frame:查询文件所在的frame的名称
//调用:列表文件调用装载完毕后调用
//===================================================================function setPage(totalPage,currPage,frame)
{
    var intCurrPage=parseInt(currPage);
    var intTotalPages=parseInt(totalPage);
    if (intTotalPages==0)  currPage = "0";
    try {
        document.getElementById("spnCurrPage").innerText = currPage;
        document.getElementById("spnTotalPages").innerText = totalPage;
        document.getElementById("firstPage").disabled = true;
        document.getElementById("prevPage").disabled = true;
        document.getElementById("nextPage").disabled = true;
        document.getElementById("lastPage").disabled = true;
        document.getElementById("listAll").disabled = true;
        if (intCurrPage>1)
        {
            document.getElementById("firstPage").disabled = false;
            document.getElementById("prevPage").disabled = false;
        }        if (intCurrPage<intTotalPages)
        {
            document.getElementById("nextPage").disabled = false;
            document.getElementById("lastPage").disabled = false;
        }
        if (intTotalPages > 1)
        {
            document.getElementById("listAll").disabled = false;
        }
        if (intTotalPages==0) alert("没有查询到符合条件的记录!");
    } catch(e) {
        processException(e);
    }
    try {
        if (typeof(frame) == 'undefined')   frame = "parent.left_frame";
        eval("var objForm = "+frame+".document.getElementById(\"frmSearch\");");
       //var objForm=frame.document.getElementById("frmSearch");
        objForm.intCurrentPage.value = currPage;
        objForm.intTotalPages.value = totalPage;
    } catch (e) {
        processException(e);
    }
}
4.
//功能:如果返回结果大于或等于指定的记录数,弹出提示
//输入参数:
//maxResults:指定的记录数
//调用:列表文件调用装载完毕后调用
//===================================================================function setRecordLimit(maxResults)
{
    if (maxResults > 0)
    {
        var hint = "您本次查询结果的实际记录数多于"+maxResults+"条,系统只取前"+maxResults+"条。\n\n";
        hint += "要缩小查询结果,请输入更多或更精确的查询条件!";
        alert(hint);
    }
}
5.
//功能:设置列表文件的开始记录数、结束记录数、总记录数
//输入参数:fromIndex:开始记录数,toIndex:结束记录数,totalRecords:总记录数
//调用:列表文件调用装载完毕后调用
//===================================================================function setRecord(fromIndex,toIndex,totalRecords)
{
    try {
        document.getElementById("spnFromIndex").innerText = fromIndex;
        document.getElementById("spnToIndex").innerText = toIndex;
        document.getElementById("spnTotalRecords").innerText = totalRecords;
    } catch(e)
    {
        processException(e);
    }
}帮忙看看,100分相谢,这个问题搞了我好久,最近是在是没办法了

解决方案 »

  1.   

    装个MS或者FF的JS调试工具吧
      

  2.   

    太长了,没仔细看var intPage=parseInt(objForm.intCurrentPage.value);
    你在取出这个数值的时候alert一下看结果,或者取的时候判断下时不时空
      

  3.   

    现在错误变成"缺少对象,错误类型:424"好晕啊
    http://community.csdn.net/Expert/topic/5567/5567269.xml?temp=.1232263
      

  4.   

    多写几个alert先看看问题是那个alert之前发生的
    然后再去找原因
      

  5.   

    eval("var objForm = "+frame+".document.getElementById(\"frmSearch\");");
    这句有问题,Form取得不能用getElementById的
      

  6.   

    这是我改过的,错误还是一样'objForm.intCurrentPage'为空或不是对象
    错误类型:5007现在都恢复到原来了,已经变为 eval("var objForm = "+frame+".document.frmSearch;");
    其中frmSearch是<form styleId="frmSearch"我也判断了,加了if(objForm.intCurrentPage.value!=""){var intPage=parseInt(objForm.intCurrentPage.value);
    if(objForm.intTotalPages.value!=""){
    var intTotalPages=parseInt(objForm.intTotalPages.value);
      

  7.   

    我在这之前加了一些alert()但是这些alert()都不显示,我好晕啊
      

  8.   

    5007的错误是:
    需要 Object 类型
    试图对一个不是Object 类型的对象调用 Object.prototype.toString 或Object.prototype.valueOf 方法。这种调用类型的对象必须是 Object 类型
      

  9.   

    发现了一些问题,首先 
     if (typeof(frame) == 'undefined')   frame = "parent.left_frame";
            eval("var objForm = "+frame+".document.frmSearch;");
    这句话有没有错?可以var objForm = parent.left_frame.document.frmSearch;吗?
      

  10.   

    其中<form styleId="frmSearch"/>
    可以var objForm = parent.left_frame.document.frmSearch;这样引用么?
      

  11.   

    //===================================================================
    //功能:设置查询文件内隐藏变量的当前页号、总页数、并提交查询。
    //输入参数:
    //sValue:第一页(First),上一页(Prev),下一页(Next),最后一页(Last)
    //frame:查询文件所在的frame的名称
    //调用:列表文件调用装载完毕后调用
    //===================================================================function DoPage(sValue,frame)
    {
    try
    {
            if (typeof(frame) == 'undefined')   frame = "parent.left_frame";
            eval("var objForm = "+frame+".document.frmSearch;");
            if(objForm.intCurrentPage.value!=""){                         //我加的判断
    var intPage=parseInt(objForm.intCurrentPage.value);
    if(objForm.intTotalPages.value!=""){                //我加的判断 var intTotalPages=parseInt(objForm.intTotalPages.value);
    switch (sValue) {
    case "First":
    {
    if (intPage>1)
    {
                        showProcessBar(this); //显示进度条
    objForm.intCurrentPage.value="1"; 
     //原本是整形1,但是objForm.intCurrentPage是一个隐藏的字段,应该是String类型,依下都一样
    objForm.submit();
    }
    break;
    }
    case "Prev":
    { if (intPage>1)
    {
                        showProcessBar(this); //显示进度条
    objForm.intCurrentPage.value=(intPage-1).toString();
    objForm.submit();
    }
    break;
    }
    case "Next":
    { if (intPage<intTotalPages)
    {
                        showProcessBar(this); //显示进度条
    objForm.intCurrentPage.value=(intPage+1).toString();
    objForm.submit();
    }
    break;
    }
    case "Last":
    { if (intPage<intTotalPages)
    {
                        showProcessBar(this); //显示进度条
    objForm.intCurrentPage.value=intTotalPages.toString();
    objForm.submit();
    }
    break;
    }
    case "ListAll":
    {
        if (intTotalPages > 1)
        {
                        showProcessBar(this); //显示进度条
                        objForm.intCurrentPage.value="1";
                        objForm.intTotalPages.value="-1"; //用来做标志判断
                        objForm.submit();
                    }
    break;
    }
    }
    }
    }
    }
    catch (e)
    {
            processException(e);
    }
    }下面这段有错么?frmSearch在页面中是<form styleId="frmSearch"/>
    if (typeof(frame) == 'undefined')   frame = "parent.left_frame";
            eval("var objForm = "+frame+".document.frmSearch;");
            objForm.intCurrentPage.value = currPage;
            objForm.intTotalPages.value = totalPage;function DoSearch(iframe)
    {
        if (typeof(iframe) == 'undefined') iframe = parent.right_frame;
        showProcessBar(iframe);
        try
        {
        eval("var objForm = parent.left_frame.document.frmSearch;");
              //这个是我改过的,原本应该是var objForm = frmSearch;
            objForm.intTotalPages.value="1";
            objForm.intCurrentPage.value="1";
          
            objForm.submit();
        } catch(e) {
            processException(e);
        }
    }问题依旧啊,还是5007错误'objForm.intCurrentPage'