免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4117 | 回复: 13
打印 上一主题 下一主题

[学习] 给大家出一个HTML/JavaScript的题目, 确认表单 [复制链接]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-21 18:05 |只看该作者 |倒序浏览
[学习] 给大家出一个HTML/JavaScript的题目, 确认表单

题目很简单:
1. 一个HTML页面
2. 20个标准表单
3. 表单没有通过任何人为的设定来标识自己(例如:使用表单名称不同, 或者隐含字段值不同等,均属于标识自己)

表单结构类似:
  1. <form>
  2.     <input type="text"     name="text"     value="text">
  3.     <input type="submit" name="submit" value="submit">
  4. </form>
复制代码


问题也很简单:
1. 用alert对话框显示出当前提交的表单是哪一个.

[ 本帖最后由 HonestQiao 于 2005-12-21 18:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-12-21 21:21 |只看该作者

  1. <script>
  2. <!--
  3. function focusme(obj){
  4. activeForm = obj.form;
  5. for (i=0; i< document.forms.length; i++)
  6. {
  7.         if (document.forms[i] == activeForm)
  8.         {
  9.                 alert("这是第"+(i+1)+"个form");
  10.                 activeForm.elements[0].focus();
  11.                 break;
  12.         }
  13. }
  14. return false;
  15. }
  16. -->
  17. </script>

  18. <form>
  19.     <input type="text"     name="text"     value="text">
  20.     <input type="submit" name="submit" onclick="return focusme(this);" value="submit">
  21. </form>
  22. <form>
  23.     <input type="text"     name="text"     value="text">
  24.     <input type="submit" name="submit" onclick="return focusme(this);" value="submit">
  25. </form>
  26. <form>
  27.     <input type="text"     name="text"     value="text">
  28.     <input type="submit" name="submit" onclick="return focusme(this);" value="submit">
  29. </form>
  30. <form>
  31.     <input type="text"     name="text"     value="text">
  32.     <input type="submit" name="submit" onclick="return focusme(this);" value="submit">
  33. </form>
复制代码

论坛徽章:
0
3 [报告]
发表于 2005-12-21 21:26 |只看该作者

  1. <script language=javascript>
  2. document.onclick=function checksubmit(){
  3. for(i=0;i<document.forms.length;i++){
  4.     for(j=0;j<document.forms[j].elements.length;j++){
  5.         if(document.forms[i].elements[j]==event.srcElement){
  6.                 alert("form"+i);
  7.                 break;
  8.           }
  9.        }
  10.    }
  11. window.event.returnValue=false;
  12. }
  13. </script>
  14. <form>
  15.     <input type="text"     name="text"     value="text">
  16.     <input type="submit"  value="submit">
  17. </form>
  18. <form>
  19.     <input type="text"     name="text"     value="text">
  20.     <input type="submit"  value="submit">
  21. </form>
  22. <form>
  23.     <input type="text"     name="text"     value="text">
  24.     <input type="submit"  value="submit">
  25. </form>
  26. <form>
  27.     <input type="text"     name="text"     value="text">
  28.     <input type="submit"  value="submit">
  29. </form>
  30. <form>
  31.     <input type="text"     name="text"     value="text">
  32.     <input type="submit"  value="submit">
  33. </form>
  34. <form>
  35.     <input type="text"     name="text"     value="text">
  36.     <input type="submit"  value="submit">
  37. </form>
  38. <form>
  39.     <input type="text"     name="text"     value="text">
  40.     <input type="submit"  value="submit">
  41. </form>
  42. <form>
  43.     <input type="text"     name="text"     value="text">
  44.     <input type="submit"  value="submit">
  45. </form>
  46. <form>
  47.     <input type="text"     name="text"     value="text">
  48.     <input type="submit"  value="submit">
  49. </form>
  50. <form>
  51.     <input type="text"     name="text"     value="text">
  52.     <input type="submit"  value="submit">
  53. </form>
  54. <form>
  55.     <input type="text"     name="text"     value="text">
  56.     <input type="submit"  value="submit">
  57. </form>
复制代码

[ 本帖最后由 mailsyf 于 2005-12-21 21:30 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2005-12-21 21:33 |只看该作者
3楼,经Firefox1.5测试,你的玩意不起作用.

论坛徽章:
0
5 [报告]
发表于 2005-12-21 21:57 |只看该作者
ie下上面方法是可以的,至于其他浏览器下应该也有解决方法,具体就不知道了,思路是这样,纯粹是为了答题

论坛徽章:
0
6 [报告]
发表于 2005-12-21 22:59 |只看该作者
原帖由 gydoesit 于 2005-12-21 21:21 发表
[code]
<script>
<!--
function focusme(obj){
activeForm = obj.form;
for (i=0; i< document.forms.length; i++)
{
        if (document.forms == activeForm)
        {
                alert("这是第" ...


想不出有更好的了..............................

论坛徽章:
0
7 [报告]
发表于 2005-12-22 08:58 |只看该作者

改进型


  1. <script language=javascript>
  2. document.onclick=function checksubmit(evt){
  3. if(evt==null)evt=window.event;
  4. for(i=0;i<document.forms.length;i++){
  5.     for(j=0;j<document.forms[j].elements.length;j++){
  6.         if(document.forms[i].elements[j]==evt.srcElement){
  7.                 alert("form"+i);
  8.                 break;
  9.           }
  10.        }
  11.    }
  12. evt.returnValue=false;
  13. }
  14. </script>

  15. <body>
  16. <form>
  17.     <input type="text"     name="text"     value="text">
  18.     <input type="submit"  value="submit">
  19. </form>
  20. <form>
  21.     <input type="text"     name="text"     value="text">
  22.     <input type="submit"  value="submit">
  23. </form>
  24. <form>
  25.     <input type="text"     name="text"     value="text">
  26.     <input type="submit"  value="submit">
  27. </form>
  28. <form>
  29.     <input type="text"     name="text"     value="text">
  30.     <input type="submit"  value="submit">
  31. </form>
  32. <form>
  33.     <input type="text"     name="text"     value="text">
  34.     <input type="submit"  value="submit">
  35. </form>
  36. <form>
  37.     <input type="text"     name="text"     value="text">
  38.     <input type="submit"  value="submit">
  39. </form>
  40. <form>
  41.     <input type="text"     name="text"     value="text">
  42.     <input type="submit"  value="submit">
  43. </form>
  44. <form>
  45.     <input type="text"     name="text"     value="text">
  46.     <input type="submit"  value="submit">
  47. </form>
  48. <form>
  49.     <input type="text"     name="text"     value="text">
  50.     <input type="submit"  value="submit">
  51. </form>
  52. <form>
  53.     <input type="text"     name="text"     value="text">
  54.     <input type="submit"  value="submit">
  55. </form>
  56. <form>
  57.     <input type="text"     name="text"     value="text">
  58.     <input type="submit"  value="submit">
  59. </form>

复制代码

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
8 [报告]
发表于 2005-12-22 10:00 |只看该作者
给出一个完全符合W3C规范的.
1. 通过提交的按钮, 找到他的父元素之中FORM
2. 获取整个页面的FORM, 与1对比
3. 所使用的方法完全符合W3C的规范

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML>
  3. <HEAD>
  4. <TITLE> locate form </TITLE>
  5. <script language="javascript" type="text/javascript">
  6. <!--//
  7.         function cS(obj)
  8.         {
  9.                 while(obj=obj.parentNode) if (obj.tagName==="FORM") break;
  10.                 if (obj.tagName!=="FORM") return false;
  11.                 var objFall = document.getElementsByTagName("FORM");
  12.                 var n=0;
  13.                 for (i in objFall)
  14.                 {
  15.                         if (objFall[i].tagName === "FORM") n++;
  16.                         if (objFall[i] === obj) break;
  17.                 }
  18.                 alert(n);
  19.                 return false;
  20.         }
  21. //-->
  22. </script>
  23. </HEAD>

  24. <BODY>
  25. <form>
  26.     <input type="text"     name="text"     value="text">
  27.     <input type="submit"  value="submit"  onclick="cS(this);">
  28. </form>
  29. <form>
  30.     <input type="text"     name="text"     value="text">
  31.     <input type="submit"  value="submit"  onclick="cS(this);">
  32. </form>
  33. <form>
  34.     <input type="text"     name="text"     value="text">
  35.     <input type="submit"  value="submit"  onclick="cS(this);">
  36. </form>
  37. <form>
  38.     <input type="text"     name="text"     value="text">
  39.     <input type="submit"  value="submit"  onclick="cS(this);">
  40. </form>
  41. <form>
  42.     <input type="text"     name="text"     value="text">
  43.     <input type="submit"  value="submit"  onclick="cS(this);">
  44. </form>
  45. <form>
  46.     <input type="text"     name="text"     value="text">
  47.     <input type="submit"  value="submit"  onclick="cS(this);">
  48. </form>
  49. <form>
  50.     <input type="text"     name="text"     value="text">
  51.     <input type="submit"  value="submit"  onclick="cS(this);">
  52. </form>
  53. <form>
  54.     <input type="text"     name="text"     value="text">
  55.     <input type="submit"  value="submit"  onclick="cS(this);">
  56. </form>
  57. <form>
  58.     <input type="text"     name="text"     value="text">
  59.     <input type="submit"  value="submit"  onclick="cS(this);">
  60. </form>
  61. <form>
  62.     <input type="text"     name="text"     value="text">
  63.     <input type="submit"  value="submit"  onclick="cS(this);">
  64. </form>
  65. <form>
  66.     <input type="text"     name="text"     value="text">
  67.     <input type="submit"  value="submit"  onclick="cS(this);">
  68. </form>
  69. <form>
  70.     <input type="text"     name="text"     value="text">
  71.     <input type="submit"  value="submit"  onclick="cS(this);">
  72. </form>
  73. <form>
  74.     <input type="text"     name="text"     value="text">
  75.     <input type="submit"  value="submit"  onclick="cS(this);">
  76. </form>
  77. <form>
  78.     <input type="text"     name="text"     value="text">
  79.     <input type="submit"  value="submit"  onclick="cS(this);">
  80. </form>
  81. <form>
  82.     <input type="text"     name="text"     value="text">
  83.     <input type="submit"  value="submit"  onclick="cS(this);">
  84. </form>
  85. <form>
  86.     <input type="text"     name="text"     value="text">
  87.     <input type="submit"  value="submit"  onclick="cS(this);">
  88. </form>
  89. <form>
  90.     <input type="text"     name="text"     value="text">
  91.     <input type="submit"  value="submit"  onclick="cS(this);">
  92. </form>
  93. <form>
  94.     <input type="text"     name="text"     value="text">
  95.     <input type="submit"  value="submit"  onclick="cS(this);">
  96. </form>
  97. <form>
  98.     <input type="text"     name="text"     value="text">
  99.     <input type="submit"  value="submit"  onclick="cS(this);">
  100. </form>
  101. <form>
  102.     <input type="text"     name="text"     value="text">
  103.     <input type="submit"  value="submit"  onclick="cS(this);">
  104. </form>
  105. </BODY>
  106. </HTML>
复制代码

论坛徽章:
0
9 [报告]
发表于 2005-12-22 10:23 |只看该作者
版主,你写的好是好,看不懂呀,5555

比如while(obj=obj.parentNode)
obj怎么会把父节点值赋给自己,while又是怎么回事呀.
我看你前几句得给我们一句一句讲讲呀(没办法,菜(


7楼,你什么改进型,在firefox1.5中不起作用,不知你改进了什么

论坛徽章:
0
10 [报告]
发表于 2005-12-22 10:40 |只看该作者
原帖由 gydoesit 于 2005-12-22 10:23 发表
版主,你写的好是好,看不懂呀,5555

比如while(obj=obj.parentNode)
obj怎么会把父节点值赋给自己,while又是怎么回事呀.
我看你前几句得给我们一句一句讲讲呀(没办法,菜(


7楼,你什么改进型,在firef ...

那个while()语句是从按钮开始向上层查找包含本按钮的form,并且取得这个form的节点
再取得页面中的所有的form
然后用for循环一下判断取得的那个form是第几个
顺便问一下,楼主这个题目具体在项目里有什么应用么?

[ 本帖最后由 newbuding 于 2005-12-22 10:44 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP