Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数return";“未定义”;从jsp页面_Javascript_Jsp - Fatal编程技术网

javascript函数return";“未定义”;从jsp页面

javascript函数return";“未定义”;从jsp页面,javascript,jsp,Javascript,Jsp,我有一个jsp页面并调用一个JS函数,该函数位于这个jsp页面的abc.JS文件中。 我已经将这个js文件包含到jsp页面中 JSP JavaScript代码:- function doFinish(tableId, col, field) { var oldselectedCells = ""; var selItemHandle = ""; var selRightItemHandle = ""; var left = -1; var right = -1;

我有一个jsp页面并调用一个JS函数,该函数位于这个jsp页面的abc.JS文件中。 我已经将这个js文件包含到jsp页面中

JSP JavaScript代码:-

function doFinish(tableId, col, field)
{
   var oldselectedCells = "";
   var selItemHandle = "";
   var selRightItemHandle = "";
   var left = -1;
   var right = -1;
   // Get the table (tBody) section
   var tBody = document.getElementById(tableId);
   // get field in which selected columns are stored
   var selectedCellsFld = document.getElementById(tableId + datatableSelectedCells);

   selectedCellsFld.value = oldselectedCells;
   for (var r = 0; r < tBody.rows.length; r++)
   {
      var row = tBody.rows[r];
      if (row.cells[col].childNodes[0].checked == true)
      {
         selectedCellsFld.value = oldselectedCells +
                                 row.cells[col].childNodes[0].id;
         selItemHandle = row.cells[col].childNodes[0].value

         oldselectedCells =  selectedCellsFld.value + datatableOnLoadDivider;

         left = selItemHandle.indexOf("=");
         right = selItemHandle.length;
         selRightItemHandle = selItemHandle.substring(left+1,right);
         var index=getColumnIndex(tBody,"Name");
         if(index!=null)
         {
            if(field == 1)
            {
               window.opener.document.TemplateForm.eds_asbactionscfg_item_handle_child_physpart.value = selRightItemHandle;
               window.opener.document.TemplateForm.ChildPhysicalPart.value = row.cells[index].childNodes[0].innerHTML;
            }
            else if (field == 2)
            {
               window.opener.document.TemplateForm.eds_asbactionscfg_dev_doc_item_handle_name.value = selRightItemHandle;
               window.opener.document.TemplateForm.DeviationObject.value = row.cells[index].childNodes[0].innerHTML;
            }
            else if (field == 3)
            {
               window.opener.document.TemplateForm.eds_asbactionscfg_dev_doc_item_handle_name.value = selRightItemHandle;
               window.opener.document.TemplateForm.DeviationObject.value = row.cells[index].childNodes[0].innerHTML;
            }
         }

      }
   }

   window.close();
}
函数doFinish(表ID、列、字段)
{
var oldselectedCells=“”;
var selItemHandle=“”;
var selRightItemHandle=“”;
左var=-1;
var-right=-1;
//获取表格(tBody)部分

var tBody=document.getElementById(tableId); //获取存储选定列的字段 var selectedCellsFld=document.getElementById(tableId+datatableSelectedCells); selectedCellsFld.value=旧的selectedcells; 对于(var r=0;r

JS代码:-

function getColumnIndex(tBody,columnName)
 {
    var cells = tBody.parentNode.getElementsByTagName('th');     
    for (var i=0;i<cells.length; i++)
    {
       if(cells[i].hasChildNodes())
       {
          if(cells[i].childNodes[0].innerHTML.replace(/(\r\n|\n|\r)/gm ,"").trim() == columnName)
          {
             return i;
          }
       }
    }
 }
函数getColumnIndex(tBody,columnName) { var cells=tBody.parentNode.getElementsByTagName('th'); for(var i=0;i
getColumnIndex(tBody,columnName)
函数工作正常。 好像它符合这个if条件

 if(cells[i].childNodes[0].innerHTML.replace(/(\r\n|\n|\r)/gm ,"").trim() == columnName)
          {
             return i;
          }
所以它会返回一些东西

但是当你替换这个的时候
var index=getColumnIndex(tBody,“Name”);
这样coulmname将是字符串中的“Name”。 并且它与任何列名都不匹配,所以您的条件将出错,并且函数不会返回任何内容

var index=getColumnIndex(tBody,“Name”);
索引值为“未定义”

建议在此基础上添加一些其他条件,并返回如下错误消息:

 if(cells[i].childNodes[0].innerHTML.replace(/(\r\n|\n|\r)/gm ,"").trim() == columnName)
          {
             return i;
          } else{
       // put some error message
       // return null   
}
我用firebug调试了这段代码&调用getColumnIndex(tBody,columnName)函数可以很好地工作

因此,我假设
getColumnIndex
函数的实现没有任何问题,因此获取
未定义的
值的问题必须与该函数何时返回值有关

但当它返回给调用方时,var index=getColumnIndex(tBody,“Name”);索引值为“undefine”

这导致我假设您的
tBody
变量设置不正确,因为“函数工作正常”

我假设您的代码中存在一种情况,即
getColumnIndex
函数的条件不满足

function getColumnIndex(tBody,columnName)
 {
    var cells = tBody.parentNode.getElementsByTagName('th');     
    for (var i=0;i<cells.length; i++)
    {
       if(cells[i].hasChildNodes())
       {
          if(cells[i].childNodes[0].innerHTML.replace(/(\r\n|\n|\r)/gm ,"").trim() == columnName)
          {
             return i;
          }
       }
    }
    // If your code reaches this point, then the prior conditions have not been met
    // You can choose to do something else here for return false/undefined etc.
    return undefined;
 }
函数getColumnIndex(tBody,columnName) { var cells=tBody.parentNode.getElementsByTagName('th');
对于(var i=0;我可以告诉我们您在函数中输入了哪些参数以使其返回
未定义的
?我有一个表:-doFinish('dtl_body',0,1)什么是
tBody
,何时/何地定义了它?var tBody=document.getElementById(tableId);它在doFinish()中定义你能更新你问题中的代码来说明这一点吗?我说的完全一样。