| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 703 人关注过本帖
标题:高手,帮我忙!!!!!!!!!!
只看楼主 加入收藏
LIU61ZHU61ZH
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:27
专家分:0
注 册:2010-9-30
结帖率:87.5%
收藏
已结贴  问题点数:18 回复次数:9 
高手,帮我忙!!!!!!!!!!
程序代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www. New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">

 </head>
  <script language="javascript">
  <!--
    function RS()
    {
      var sel = HQ("cbx");
      if(sel == 0)
      {
        alert("你没有做出任何选择,请选择后再提交");
        return false;
      }
      else
      {
        txt="你喜欢的水果有:"+sel;
        alert(txt);
      }
    }
    function HQ(objname)
    {
      var s;
      var obj = new Array();
      obj = document.getElementsByName(objname);
        if(obj.checked)
        {
          s=obj.value;
        }
      return(s);
     }
  -->
  </script>

 <body>
  <form>
    <input type="checkbox" name="cbx" value="苹果">苹果
    &nbsp;&nbsp;&nbsp;<input type="submit" value="提交" onclick="RS();">
  </form>

 </body>
</html>
问题:我要输出苹果,看看我这代码那里错了。
搜索更多相关主题的帖子: javascript content PUBLIC color title 
2010-10-29 11:05
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
收藏
得分:6 
鉴于你有选多种水果显示的意图,写了以下代码:
程序代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www. New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
</head>
  <script language="javascript">
  <!--
      function RS() {
          var sel = HQ("cbx");
          if (!sel) {
              alert("你没有做出任何选择,请选择后再提交");
              return false;
          }
          else {
              txt = "你喜欢的水果有:" + sel;
              alert(txt);
          }
      }
      function HQ(objname) {
          var s = "";
          var obj = new Array();
          obj = document.getElementsByName(objname);
          for (var i=0;i<obj.length;i++) {
              if (obj[i].checked) {
                  s += obj[i].value+",";
              }
          }
          s = s.substring(0, s.length-1);
          return (s);
      }
  -->
  </script>
<body>
  <form>
    <input type="checkbox" name="cbx" value="苹果">苹果
    <input type="checkbox" name="cbx" value="苹果2">苹果2
    &nbsp;&nbsp;&nbsp;<input type="submit" value="提交" onclick="RS();">
  </form>
</body>
</html>

2010-10-29 13:44
silentwolf
Rank: 2
等 级:论坛游民
帖 子:4
专家分:39
注 册:2010-9-25
收藏
得分:6 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.


<html>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<head>
  <title> New Document </title>
 
</head>
  <script language="javascript">
  <!--
    function RS()
    {
      var sel = HQ("cbx");
      if(sel == null)
      {
        alert("你没有做出任何选择,请选择后再提交");
        return false;
      }
      else
      {
        txt="你喜欢的水果有:"+sel;
        alert(txt);
      }
    }
    function HQ(cbx)
    {
      var s;
      var obj = new Array();
      obj = document.getElementById("friut");
        if(obj.checked)
        {
          s=obj.value;
        }
        else{
            s==null;
        }
        
            return(s);
        
      
     }
  -->
  </script>
<body>
  <form>
    <input type="checkbox" name="cbx" value="苹果" id="friut">苹果
    &nbsp;&nbsp;&nbsp;<input type="submit" value="提交" onclick="RS();">
  </form>
</body>
</html>


把代码好好看看,我给你的  苹果加了一个ID  
2010-10-29 16:25
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
收藏
得分:6 
楼上。
我给的代码不叫完美也至少是简练无误,而新手被不考究的代码所误导是我不希望看到的。
所以帮你分析一下你代码的问题,请仔细检查斟酌再给出
首先,无论是从弹出的显示信息"你喜欢的水果有:",还是楼主给出的代码中var obj = new Array()数组的定义,都可以推断出他的需求是能够判断多个checkbox的选中状态,而不是单纯的只获取一个dom元素来判断。所以你根据id来获取单一指定checkbox的方式并不是太好的方案,而且既然obj = document.getElementById("friut");了为何还要保留var obj = new Array();呢?明显的错误之处。
再者,if (!sel)已经可以判断当s值为"",为undefined,为null等等的N种空值情况,为何你要用if(sel == null),然后后面代码再另外的去给s赋null值去进行判断呢?显得代码冗余不简练,这是第二个不妥之处,而else{s==null;}则更是代码中第二个明显的错误之处 ==是判断是否相等,=是赋值,常识

就说这么多吧。
这个小功能很简单,希望楼上给代码的朋友平日勤学多问,增加自己的js功底
2010-10-29 16:47
LIU61ZHU61ZH
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:27
专家分:0
注 册:2010-9-30
收藏
得分:0 
这个问题已解决,
2010-10-31 19:52
xieliu0048
Rank: 2
等 级:论坛游民
帖 子:44
专家分:30
注 册:2010-11-30
收藏
得分:0 
js里的帖子,比c#的搞笑太多......
2010-11-30 15:07
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
JS版的帖子很搞笑吗?

虽然JS里的人气确实远不如C或者C#等区,不过相信在foktime和大家的努力下,一定会慢慢汇集更多的人气!


Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-11-30 16:01
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
     foktime版主说的很有道理,checkbox这个东西在实际项目里本身就很少单独使用。更不可能只用一个document.getElementById来获取的,而且严格上来说document.getElementByName这种操作也不是很合理,我觉得如果前面没有任何约束,将来站点升级后问题会很多,一般都是把多个checkbox放到一个有固定id的容器里。然后以document.getElementById(固定容器的id).getElementByTagName的方式获取,这样会更科学一些,最起码不用担心页面表单里name的重名引起的不必要的冲突错误!个人浅见,不要认为这个很搞笑。将来你一定用得上!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-11-30 16:08
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
收藏
得分:0 
回复 8楼 gupiao175
被说搞笑,可能是我话太多^ ^
我就是希望提问者能得到更好的代码参考 可能扯得太多了。
2010-12-01 08:19
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
收藏
得分:0 
回复 7楼 gupiao175
C还好,C#其实很冷的。我在那提个问题,基本都是自问自答
2010-12-01 08:21
快速回复:高手,帮我忙!!!!!!!!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029574 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved