CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

如何传值???

楼主lhdjk(耗子)2002-10-06 18:11:12 在 Web 开发 / JavaScript 提问

问:如何将test.html中任意框中输入的值在按下回车键后,传到testnew.html的任意框中去???  
   
  test.html  
   
  <HTML><BODY>  
  <input   type="text"   id="txt"   size=20   onkeydown="if(event.keyCode==13)   opensend()">  
  <input   type="text"   id="txt1"   size=20>  
  <script>  
  function   opensend()  
  {  
  x   =   showModalDialog("testnew.html");  
  event.srcElement.value   =   x[0];  
  event.srcElement.parentNode.parentNode.children[2].firstChild.value   =   x[1];  
  }  
  </script>  
  </BODY></HTML>  
  IE报错:  
  错误:'x.0'不是对象  
   
  testnew.html  
   
  <HTML><BODY>  
  <input   type="text"   name="dlgtxt">  
  <input   type="text"   name="dlgtxt1">  
  <button   onclick="doSomething()">do   somthing</button>  
  <script>  
  function   doSomething(){  
      returnValue   =   [dlgtxt.value,dlgtxt1.value]  
      close();  
  }  
  </script>  
  </BODY></HTML> 问题点数:20、回复次数:21Top

1 楼net_lover(【孟子E章】)回复于 2002-10-06 19:17:47 得分 0

test.html  
   
  <HTML><BODY>  
  <input   type="text"   id="txt"   size=20   onkeydown="if(event.keyCode==13)   opensend()">  
  <input   type="text"   id="txt1"   size=20>  
  <script>  
  function   opensend()  
  {  
  x   =   showModalDialog("testnew.html");  
  event.srcElement.value   =   x[0];  
  event.srcElement.parentNode.parentNode.children[2].firstChild.value   =   x[1];  
  }  
  </script>  
  </BODY></HTML>  
   
   
  testnew.html  
   
  <HTML><BODY>  
  <input   type="text"   name="dlgtxt">  
  <input   type="text"   name="dlgtxt1">  
  <button   onclick="doSomething()">do   somthing</button>  
  <script>  
  function   doSomething(){  
      window.returnValue   =   [dlgtxt.value,dlgtxt1.value]  
      close();  
  }  
  </script>  
  </BODY></HTML>  
  Top

2 楼net_lover(【孟子E章】)回复于 2002-10-06 19:21:19 得分 0

test.html  
  <HTML><BODY>  
  <input   type="text"   id="txt"   size=20   onkeydown="if(event.keyCode==13)   opensend()">  
  <input   type="text"   id="txt1"   size=20>  
  <script>  
  function   opensend()  
  {  
  x   =   showModalDialog("testnew.html");  
  event.srcElement.value   =   x[0];  
  txt1.value   =   x[1];  
  }  
  </script>  
  </BODY></HTML>  
   
  event.srcElement.parentNode.parentNode.children[2].firstChild.value是谁啊Top

3 楼lhdjk(耗子)回复于 2002-10-06 20:54:08 得分 0

孟老师:  
  csdn上边有srcElement  
                      parentNode等的详细介绍没有??Top

4 楼lhdjk(耗子)回复于 2002-10-06 21:04:32 得分 0

孟老师:  
  到底您哪一楼的回复才是正确的传递呀?  
   
  两篇都试了,还是报错,还是不能传到用showModalDialog打开的窗口中去Top

5 楼emu(月亮不在手指尖上)回复于 2002-10-06 21:09:00 得分 0

孟子:我原来以为他的返回值要依次放在第二个和第三个单元格中的input框里面,所以才有了“event.srcElement.parentNode.parentNode.children[2].firstChild.value”,没想到你都看迷糊了呵呵。  
   
  lhdjk   (耗子)   :看看这个你就知道为什么我要搞那么多parentNode和children了。  
   
  <HTML><BODY>  
  <table>  
  <tr>  
  <td>  
  <input   type="text"   id="txt"   size=20   onkeydown="if(event.keyCode==13)   opensend()">  
  </td>  
  <td>  
  <input   type="text"   id="txt1"   size=20>  
  </td>  
  </tr>  
  <tr>  
  <td>  
  <input   type="text"   id="txt"   size=20   onkeydown="if(event.keyCode==13)   opensend()">  
  </td>  
  <td>  
  <input   type="text"   id="txt1"   size=20>  
  </td>  
  </tr>  
  </table>  
  <script>  
  function   opensend()  
  {  
  x   =   showModalDialog("testnew.html");  
  event.srcElement.value   =   x[0];  
  event.srcElement.parentNode.parentNode.children[1].firstChild.value   =   x[1];  
  }  
  </script>  
  </BODY></HTML>  
   
  Top

6 楼emu(月亮不在手指尖上)回复于 2002-10-06 21:14:15 得分 0

lhdjk(耗子)   :孟子的第二篇明明是对的啊,在我这里没有问题。Top

7 楼lhdjk(耗子)回复于 2002-10-06 21:18:30 得分 0

emu(ston)   哥:  
   
  您告诉孟老师的,其实正是我想要做的,因为您一直在开发我的智力,孟老师他可能是不明白我真正想要什么。  
   
  我之所以在上文中只用了一个横行,是因为我想一步步的搞过来。  
   
  不过您楼上的这段,我试了一下,依然没有将test.html中我在任意框中输入的一个值传到用showModalDialog打开的窗口中的任何<input>中去呀!Top

8 楼lhdjk(耗子)回复于 2002-10-06 21:27:32 得分 0

emu(ston)哥,孟老师:  
  老二篇在我这里依然传不过去,我用的是IE6   。  
  Top

9 楼emu(月亮不在手指尖上)回复于 2002-10-06 21:35:41 得分 0

我试了又试,没有问题啊。  
  即使你那边有问题,可以一步一步调试的嘛。在两个文件中的javascript里面隔一行就alert一下,准能找到在哪行出了问题。  
   
  你前面提到的“错误:'x.0'不是对象”是由于你没有点“do   somthing”按钮就直接关闭了页面造成的。可以在主页面里面判断:  
   
  -----------------------------------------------------  
  <HTML><BODY>  
  <table>  
  <tr>  
  <td>  
  <input   type="text"   id="txt"   size=20   onkeydown="if(event.keyCode==13)   opensend()">  
  </td>  
  <td>  
  <input   type="text"   id="txt1"   size=20>  
  </td>  
  </tr>  
  <tr>  
  <td>  
  <input   type="text"   id="txt"   size=20   onkeydown="if(event.keyCode==13)   opensend()">  
  </td>  
  <td>  
  <input   type="text"   id="txt1"   size=20>  
  </td>  
  </tr>  
  </table>  
  <script>  
  function   opensend()  
  {  
  x   =   showModalDialog("testnew.html");  
  if   (x==null)   return  
  event.srcElement.value   =   x[0];  
  event.srcElement.parentNode.parentNode.children[1].firstChild.value   =   x[1];  
  }  
  </script>  
  </BODY></HTML>  
  -----------------------------------------------------Top

10 楼emu(月亮不在手指尖上)回复于 2002-10-06 21:36:56 得分 0

你是不是老是直接关闭testnew啊?要点“do   something”按钮啊!Top

11 楼lhdjk(耗子)回复于 2002-10-06 21:49:17 得分 0

emu(ston)哥:  
  是的,点了do   something按钮后,是能回写的!但是:  
   
  我估计您与孟老师是不是都把我的意思搞错了呀,  
   
  我再解释一下:  
  比如我先将test.html这个页面放在桌面上,双击后打开,这时我在其中任意一个<input>中输入任意字符,然后在任意一个<input>框中按下回车键,之后才调用opensend()函数打开一个窗口(窗口中显示的页面是:testnew.html)  
   
  需求:需求:需求:  
  这新开窗口中的<input   name="dlgtxt"><input   name="dlgtxt1">其中一个框中要显示出我在test.html中输入的那个值!  
  就象:window.open('testnew.html?'+this.value)  
   
   
  语言表达能力有限,不知您二位了解了我的意思没有Top

12 楼emu(月亮不在手指尖上)回复于 2002-10-06 21:55:42 得分 0

你就不能自己先想想办法,查查书?  
  算了,再给你做一次。Top

13 楼emu(月亮不在手指尖上)回复于 2002-10-06 22:05:44 得分 0

test.html  
  ------------------------------------------------------------  
  <HTML><BODY>  
  <table>  
  <tr>  
  <td>  
  <input   type="text"   id="txt"   size=20   onkeydown="if(event.keyCode==13)   opensend()">  
  </td>  
  <td>  
  <input   type="text"   id="txt1"   size=20>  
  </td>  
  </tr>  
  <tr>  
  <td>  
  <input   type="text"   id="txt"   size=20   onkeydown="if(event.keyCode==13)   opensend()">  
  </td>  
  <td>  
  <input   type="text"   id="txt1"   size=20>  
  </td>  
  </tr>  
  </table>  
  <script>  
  function   opensend()  
  {  
  var   elm   =   event.srcElement.parentNode.parentNode;   //取得所在行的tr对象  
  var   elmArray   =   [elm.children[0].firstChild,elm.children[1].firstChild]   ;  
  //   取得要修改的两个输入框,构成一个数组(因为ModalDialog只接收一个参数对象)  
  x   =   showModalDialog("testnew.html",elmArray);  
  if   (x==null)   return  
  elmArray[0].value=x[0];  
  elmArray[1].value=x[1];  
  }  
  </script>  
  </BODY></HTML>  
  ------------------------------------------------------------  
   
  testnew.html  
  ------------------------------------------------------------  
  <HTML><BODY   onload="getValues()">  
  <input   type="text"   name="dlgtxt">  
  <input   type="text"   name="dlgtxt1">  
  <button   onclick="doSomething()">do   somthing</button>  
  <script>  
  function   getValues()  
  {  
  dlgtxt.value=dialogArguments[0].value  
  dlgtxt1.value=dialogArguments[1].value  
  }  
  function   doSomething(){  
      returnValue   =   [dlgtxt.value,dlgtxt1.value]  
      close();  
  }  
  </script>  
  </BODY></HTML>  
  ------------------------------------------------------------  
   
  Top

14 楼emu(月亮不在手指尖上)回复于 2002-10-06 22:10:38 得分 0

lhdjk(耗子):你找几本好点的手册和在线教程,遇到问题自己多动动手吧。国庆过了,我也不能再这么常来了。Top

15 楼lhdjk(耗子)回复于 2002-10-06 22:25:08 得分 0

是!Top

16 楼net_lover(【孟子E章】)回复于 2002-10-06 22:57:28 得分 0

第2个是对的。  
  要进行传递到input里,不必要用childNode等,再说,也是容易出错的Top

17 楼emu(月亮不在手指尖上)回复于 2002-10-06 23:10:30 得分 0

嗯?  
  不用childNode那用什么呢?  
  孟子再提示一下?Top

18 楼net_lover(【孟子E章】)回复于 2002-10-06 23:29:52 得分 0

document.formName.inputName.value=x[1]Top

19 楼emu(月亮不在手指尖上)回复于 2002-10-06 23:34:57 得分 0

这个我也知道,可是他要动态生成多行啊,要用name就要带下标,处理下标就比较麻烦了。Top

20 楼lhdjk(耗子)回复于 2002-10-07 00:07:16 得分 0

tmptr.children[1].innerHTML   =   "<input   size=6   name=yhb   onkeydown='if   (event.keyCode==13)   opensend();resizeInput()'   onchange='resizeInput()'   onkeyup='removeRow()'>"  
   
  为什么出了回车键跳出新窗口,其它键都等于了Tab键了呢?Top

21 楼emu(月亮不在手指尖上)回复于 2002-10-07 00:51:53 得分 20

因为你没有用大括号把两个语句合并成一个复合语句啊:  
  tmptr.children[1].innerHTML   =   "<input   size=6   name=yhb   onkeydown='if   (event.keyCode==13)   {opensend();resizeInput();}'   onchange='resizeInput()'   onkeyup='removeRow()'>"Top

相关问题

  • 如何传值!~~
  • 如何传值?
  • window.open如何传值??
  • php如何传值,急~~~~~~~~~~~~~~~~~~~~~~~
  • 如何传递这个值?
  • 如何传递checkbox的值?
  • 如何向Servlet传值?
  • JSP如何向FLASH传值??
  • 框架如何传值
  • 如何给word传值?

关键词

得分解答快速导航

  • 帖主:lhdjk
  • emu

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo