showModalDialog

showModalDialog子窗口向母窗口写入数据时服务器控件在后台得不到该数据,建议在子窗口直接调用母窗口的方法,由该方法写数据.另外,showModalDialog子窗口调母窗口:
 window.showModalDialog('Pipe_Select.aspx',self,'dialogHeight:600px;dialogWidth:800px;left='+(window.screen.width-350)/2+';top=40;status:no;scroll:no;help:no;');  //这里写错几个似乎没事 ,母窗口
self可传母窗口的控件ID过子窗口.
var kk=window.dialogArguments;
 for(var j=0;j<kk.form1.elements.length;j++)
              {          
                if(kk.form1.elements[j].id==PipeId)
                {
                     flag=0;
                     break;
                }
              kk.form1.txt_PipeSelect.value += PipeName+";";
              }
另外,父窗口可以取到request到子窗口的控件值,但是会使父窗口更新,这样父窗口动态创建的元素消失.
  function insertRow(PipeId,PipeName,PipeLoad,PipeCity){
          var flag=1;
          var kk=window.dialogArguments;
          kk.showPipe.style.display="";
       // alert(PipeId);
              //alert(kk.form1.elements.length);
              for(var j=0;j<kk.form1.elements.length;j++)
              {
             
                if(kk.form1.elements[j].id==PipeId)
                {
                     flag=0;
                    // alert("您已经添加该管井");
                    // window.close();
                     break;
                }       
              }
            if(flag==1)
            {          
       var tr =  kk.predecessorTable.insertRow();           
       var td = tr.insertCell(); 
       td.innerHTML = "<td id='"+PipeId+"' align='center' class='tdcss'>"+PipeName+"<input type='hidden' id='"+PipeId+"' name='PipeId' value='"+PipeId+"'><input type='hidden' name='hidfUserName' value='"+PipeId+"'></td>";
       var td = tr.insertCell(); 
       td.innerHTML = "<td align='center' class='tdcss'>"+PipeLoad+"<input type='hidden' name='hidFFullName' value='"+PipeLoad+"'></td>";
        var td = tr.insertCell(); 
       td.innerHTML = "<td align='center' class='tdcss'>"+PipeCity+"<input type='hidden' name='hidFFullName' value='"+PipeLoad+"'></td>"; 
       var td = tr.insertCell();
       td.innerHTML = "<td valign='middle' align='center' class='tdcss'><IMG  height='16' src='../Images/del.gif' width='16'  style='CURSOR: hand' onclick='deleteCurrentRow();'></a></td>";
   
   kk.form1.txt_PipeSelect.value += PipeName+";";
   }
   //alert('所选项已经加入到列表中');
   //window.close();
   //flag=1;
  } 
父窗口可以用request("PipeId")取得子窗口所有的input的ID为 id='"+PipeId+"'里面的value值
父窗口判断第一个input中输入的是数字或小数:
            var tbobj = document.getElementById("predecessorTable") ;
            var MatLen=tbobj.getElementsByTagName('tr').length-1;//减去第一行显示的tr
            for(i=1;i<=MatLen;i++){
           // var MatNums=tbobj.childNodes[i].childNodes[3].childNodes[2].innerText;//取<td>取这里的值,取不到控件值</td>
          // var MatNums=tbobj.childNodes[i].childNodes[3].childNodes[2].innerHTML;//取<td>取这里生成的所有HTML代码</td>
            var MatNums=tbobj.childNodes[0].childNodes[i].childNodes[2].firstChild.value;//取得TD中第一个控件元素INPUT的值
            //判断输入的是数字或小数,只可输入一个.
            if(/^\d+(\.?\d+)?$/g.test(MatNums)!=true){
               alert("输入的耗材数量有误,请重新输入!");        
             return false;
               }
             }
           return true;
posted @ 2009-08-28 17:06  不过如此  阅读(463)  评论(0编辑  收藏  举报