CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

很头疼的问题,表单里的隐藏项用javascript怎么检测不到啊?请帮忙啊

楼主roseandwort(常春藤)2005-07-07 14:42:24 在 Web 开发 / JavaScript 提问

我在from表单里隐藏了一个字段(从数据库里取值),想用javascript检测是否为空,结果一点反应都没有,不知道是我写错了还是不能这么实现,见我的代码:<!--  
   
  function   CheckForm(){  
   
    if(Form1.endcalltime.value!=""){  
          alert("已挂机,现在可以登记了!");  
  Form1.endcalltime.focus();  
  return   false;  
        }  
        return   true;    
  }  
  //-->  
   
  请帮忙啊 问题点数:20、回复次数:63Top

1 楼net_lover(【孟子E章】)回复于 2005-07-07 14:47:12 得分 0

document.Form1.endcalltime.value  
  注意名字的大小写Top

2 楼roseandwort(常春藤)回复于 2005-07-07 14:56:41 得分 0

<Script   language="javascript"   type="text/javascript">  
  <!--  
   
  function   CheckForm(){  
   
    if(document.Form1.endcalltime.value=""){  
          alert("已挂机,现在可以登记了!");  
  Form1.endcalltime.focus();  
  return   false;  
        }  
        return   true;    
  }  
  //-->  
  </script>      
   
  这样写还是没有反应.Top

3 楼aaaa811216(李毅)回复于 2005-07-07 15:37:00 得分 0

if(document.Form1.endcalltime.value="")  
  是不是错了应该是:  
  if(document.Form1.endcalltime.value=="")  
  是不是应该两个等于号?  
  嘻嘻  
  Top

4 楼roseandwort(常春藤)回复于 2005-07-07 15:50:32 得分 0

不好意思,应该是不等于!=,看我这个马大哈。不过我写成:document.Form1.endcalltime.value!=""还是没反应,大侠们,隐藏在from里的字段真的可以检测到吗?Top

5 楼aaaa811216(李毅)回复于 2005-07-07 15:58:20 得分 0

肯定能,我做过,还是你那个地方弄错了!  
  document.Form1.endcalltime.value!=""  
  这条语句是写再函数里面了吗?你看看怎么调用的这个函数  
  在前面加:alert("aaa");看看是不是调用函数出的毛病!  
  Top

6 楼roseandwort(常春藤)回复于 2005-07-07 17:08:48 得分 0

还是没反应,因为我这个form中的信息是上一页根据相关字段搜索出来的,然后在搜索结果页做javascript的某个字段值是否为空的判断。Top

7 楼zhaoyang3402(江乐平)回复于 2005-07-07 17:10:55 得分 0

肯定可以实现  
  你把你的代码贴出来看看,  
  错在哪个地方呀Top

8 楼life360(wenjian)回复于 2005-07-07 17:16:36 得分 0

<form   name="form1"   method="post"   action="">                                          
  <script   language="JavaScript">  
  <!--  
  function   wenjian2(form)  
  {  
  if   (form.wenjian.value==""){alert("不能为空!");return;}  
  }  
  //-->  
  </script>  
  <input   type="hidden"   name="wenjian"   value="">  
  <input   type="button"   name="Button"   value="检查"     onClick="wenjian2(form1)">  
  </form>Top

9 楼roseandwort(常春藤)回复于 2005-07-08 10:05:33 得分 0

晕啊,你们写的都不是我想要的。有人说可以用:javascript的time来实现,用xmlhttp,类似http://base.d5v.cn/user/register.jsp   这个网站的。我还是没搞明白。Top

10 楼aniude(重返荣耀)回复于 2005-07-08 10:10:30 得分 0

晕啊,你把调用函数的代码一并贴出来呀!Top

11 楼slayerbb(名字被抢了)回复于 2005-07-08 12:33:07 得分 0

再说一遍  
  你的代码多了一个花括号!Top

12 楼slayerbb(名字被抢了)回复于 2005-07-08 12:34:29 得分 0

"   "!=""Top

13 楼roseandwort(常春藤)回复于 2005-07-08 13:25:02 得分 0

谢谢大家帮我解答疑问,我就在form外加了一段判断的代码:  
  <Script   language="javascript"   type="text/javascript">  
  <!--  
   
  function   CheckForm(){  
   
    if(document.Form1.endcalltime.value!=""){  
          alert("已挂机,现在可以登记了!");  
  Form1.endcalltime.focus();  
  return   false;  
        }  
        return   true;    
  }  
  //-->  
  </script>  
   
  我在别的页用这段代码就行,在这个搜索结果页用就是没反应。Top

14 楼roseandwort(常春藤)回复于 2005-07-08 13:28:17 得分 0

aaaa811216(李毅)大哥,你的办法我也用了,连那个alert("aaa");都不在页面上显示。Top

15 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-08 13:34:38 得分 0

这么说来就不是代码的错误了?看来还是和别的内容有关系的?再找别的地方吧?Top

16 楼goldentimecym(振荡波)回复于 2005-07-08 14:13:40 得分 0

把你隐藏控件的代码和那个调用函数的代码都帖出来Top

17 楼roseandwort(常春藤)回复于 2005-07-08 14:47:14 得分 0

隐藏控件的代码:<input   name="endcalltime"   type="hidden"   value="<%=rs("endcalltime")%>">  
  还有检测endcalltime是否为空的代码:  
  <Script   language="javascript"   type="text/javascript">  
  <!--  
   
  function   CheckForm(){  
   
    if(document.Form1.endcalltime.value!=""){  
          alert("已挂机,现在可以登记了!");  
  Form1.endcalltime.focus();  
  return   false;  
        }  
        return   true;    
  }  
  //-->  
  </script>  
  Top

18 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-08 17:25:44 得分 0

等会,你用什么事件触发的函数?Top

19 楼zhzhd(东东)回复于 2005-07-09 10:52:32 得分 0

隐藏控件的代码:<input   id="endcalltime"   name="endcalltime"   type="hidden"   value="<%=rs("endcalltime")%>">  
  还有检测endcalltime是否为空的代码:  
  <Script   language="javascript"   type="text/javascript">  
  <!--  
   
  function   CheckForm(){  
   
    if(document.Form1.endcalltime.value!=""){  
          alert("已挂机,现在可以登记了!");  
  Form1.endcalltime.focus();  
  return   false;  
        }  
        return   true;    
  }  
  //-->  
  </script>  
   
   
  Form1.endcalltime.focus();       endcalltime为隐藏值   能得到焦点么  
   
  Top

20 楼roseandwort(常春藤)回复于 2005-07-11 10:33:05 得分 0

当然是form的这个   <form   name="form1"   method="post"   action="record2test.asp"   onsubmit="return   CheckForm();">来触发啊。Top

21 楼roseandwort(常春藤)回复于 2005-07-11 17:58:29 得分 0

帮帮我吧!Top

22 楼lfecnu(GISER)回复于 2005-07-12 09:26:44 得分 0

Form1.endcalltime.focus();====>出错  
  该endcalltime的type属性为hidden   不能focus()  
  Top

23 楼roseandwort(常春藤)回复于 2005-07-12 10:05:16 得分 0

不能focus(),那用什么啊?Top

24 楼roseandwort(常春藤)回复于 2005-07-12 11:43:04 得分 0

现在问题不在该字段是不是隐藏的,我现在不把它隐藏也检测不到,我想是不是我把该字段的值(value="<%=rs("endcalltime")%>")是打印到页面上就不能用javascript检测啊。  
  我的代码:<script   language="javascript"   type="text/javascript">  
  <!--  
   
  function   CheckForm(){  
   
    if(Form1.endcalltime.value==""){  
          alert("你现在还不能登记!");  
  Form1.endcalltime.focus();  
  return   false;  
        }  
        return   true;    
  }  
  //-->  
  </script>  
   
  触发:<form   name="form1"   method="post"   action="record2test.asp"   onsubmit="return   CheckForm();">Top

25 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 12:44:49 得分 0

Form1.endcalltime.focus();  
  把这一行注销掉看看出来什么?Top

26 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 12:54:49 得分 0

roseandwort(常春藤)   :"当然是form的这个   <form   name="form1"   method="post"   action="record2test.asp"   onsubmit="return   CheckForm();">来触发啊。"  
  -----我不是这个意思,我是说你提交页面是用什么提交的?有提交之后才会触发onSubmit(s好像还要大些),触发了onsubmit才可以触发你的函数。Top

27 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 12:56:36 得分 0

而且你函数里边的Form1,也应该是form1吧?Top

28 楼King6860()回复于 2005-07-12 13:16:22 得分 0

检查一下,你的endcalltime   是否在   </form>   之前,  
  或者</form>   是出现了多次。Top

29 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 13:16:23 得分 0

总之你的页面里有submit按钮嘛?光看这段代码是没有错误的!Top

30 楼roseandwort(常春藤)回复于 2005-07-12 13:27:23 得分 0

现在是这样:   <script   language="javascript"   type="text/javascript">  
  <!--  
   
  function   CheckForm(){  
   
    if(form1.endcalltime.value==""){  
          alert("你现在还不能登记!");  
  return   false;  
        }  
        return   true;    
  }  
  //-->  
  </script>  
  <form   name="form1"   method="post"   action="record2test.asp"   onSubmit="return   CheckForm();">  
  <input   type="Submit"   value="登记"   name="submit">  
  还是没有任何反应。  
  Top

31 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 13:42:09 得分 0

怎么会呢?我都弹出对话框了?确定hidden的value为空?Top

32 楼roseandwort(常春藤)回复于 2005-07-12 13:50:14 得分 0

我现在都没把那个字段hidden了,直接:<%=rs("endcalltime")%>还是没反应,到底是怎么了,郁闷啊。这个字段在表里的值是空的Top

33 楼Minisheep(风云人物)回复于 2005-07-12 13:50:48 得分 0

<script   language="javascript"   type="text/javascript">  
  <!--  
  function   CheckForm(){  
  alert(form1.endcalltime.value);  
  if(form1.endcalltime.value==""){  
  alert("你现在还不能登记!");  
  return   false;  
  }  
  return   true;    
  }  
  //-->  
  </script>  
  <form   name="form1"   method="post"   action="record2test.asp"   onSubmit="return   CheckForm();">  
  <input   name="endcalltime"   type="hidden"   value="">  
  <input   type="Submit"   value="登记"   name="submit">  
  </form>  
  我这里试过,没问题啊Top

34 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 13:58:45 得分 0

我现在都没把那个字段hidden了,直接:<%=rs("endcalltime")%>还是没反应  
  ----什么意思?没写在hidden里边?也没写在html的控件里边?直接写在页面上了?(那样好像不行吧?判断的还是"name=endcalltime"控件里的值,如果位控才进入到条件语句中)Top

35 楼roseandwort(常春藤)回复于 2005-07-12 14:49:23 得分 0

你<input   name="endcalltime"   type="hidden"   value="">这个value等于空,当然用javascript检测出来值是空就显示提示信息啊,我现在是要把value="<%=rs("endcalltime")%>",然后用javascript检测endcalltime是不是空的。  
   
  那个语句是:<input   name="endtime"   type="hidden"   value="<%=rs("endcalltime")%>">Top

36 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 15:01:01 得分 0

我感觉好像是你取数据的问题:也就是说rs("endcalltime")里边就是有值的,当然不会执行那段javascript函数了,如果你想检测rs("endcalltime")的值是不是空的,可以改一下alert:  
  "alert(form1.endcalltime.value);"把这句话加到if之前,这样第一次弹出的对话框就是hidden里边的值,为不为空一目了然Top

37 楼roseandwort(常春藤)回复于 2005-07-12 15:10:14 得分 0

<script   language="javascript"   type="text/javascript">  
  <!--  
  function   CheckForm(){  
    alert(form1.endcalltime.value);  
  if(form1.endcalltime.value==""){  
  alert("你现在还不能登记!");  
  return   false;  
  }  
  return   true;    
  }  
  //-->  
  </script>  
  执行登记的时候是弹出提示:endcalltime,然后下面的就不执行了,这个form还照样提交了。Top

38 楼scsjs(闪电回归)回复于 2005-07-12 15:13:57 得分 0

呵呵,强人呀.Top

39 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 15:15:38 得分 0

endcalltime----这就是弹出框的提示信息的内容嘛?不是吧?Top

40 楼roseandwort(常春藤)回复于 2005-07-12 15:26:46 得分 0

就只弹出:endcalltime,我一点确定就什么反应都没了,这页就提交了.Top

41 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 15:28:02 得分 0

我才反应过来,那不说明这是正确的呀!---hidden里边有值了,所以他走了第一个alert后,不符合if条件!所以跳出条件语句!执行了"return   true;"返回了"true"所以可以执行转页,如果没有值才返回false,不发生转页。汗!Top

42 楼roseandwort(常春藤)回复于 2005-07-12 15:31:02 得分 0

那我现在该怎么办?  
  Top

43 楼Carignano(Carignano)回复于 2005-07-12 15:38:04 得分 0

没问题Top

44 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 15:40:13 得分 0

第一,第一次弹出的对话框是告诉你,现在hidden里边的值是什么?看样子好像在对话框里只写了"endcalltime",那么hidden里边的值就是"endcalltime";也就是"<%=rs("endcalltime")%>"里边的值是"endcalltime",有值了当然可以发生提交了,也就当然要转页了,所以它的操作是对得---转页。  
  第二,如果你的目的不是转页,是想再弹出对话框后在转页(虽然按这个对话框的内容来看不太符合常里)。你可以将"return   true;"和"return   false;"对换一下位置,就ok了Top

45 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 15:44:48 得分 0

改一下,怕你不明白:  
  第二,如果你的目的不是转页,是想在弹出---"你现在还不能登记!"---对话框后再……转页(虽然按这个对话框的内容来看不太符合常里)。你可以将"return   true;"和"return   false;"对换一下位置,就ok了  
  Top

46 楼roseandwort(常春藤)回复于 2005-07-12 15:49:25 得分 0

我现在的目的是假如检测到endcalltime不是空的那么就转页,如果检测到endcalltime是空的那么弹出信息“你现在还不能登记!”仍回到这页。Top

47 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 16:15:30 得分 0

就只弹出:endcalltime,我一点确定就什么反应都没了,这页就提交了.------这是上边你回复的贴子,弹出对话框"endcalltime",说明取到了值是"endcalltime","endcalltime不是空的里边是--endcalltime",然后"这页就提交了"这不就是发生转页了嘛?也就是实现了你说的"endcalltime不是空的那么就转页"的功能了吧?那如果"<%=rs("endcalltime")%>"里边的值是空的当然就不发生提交了?而且弹出第二个对话框---"你现在还不能登记!"---,对吧?这下明白否?  
  反正现在已经就是有值就提交转页,没值就不转页的效果了!Top

48 楼roseandwort(常春藤)回复于 2005-07-12 16:22:49 得分 0

不行,  
  <script   language="javascript"   type="text/javascript">  
  <!--  
  function   CheckForm(){  
    alert(form1.endcalltime.value);  
  if(form1.endcalltime.value==""){  
  alert("你现在还不能登记!");  
  return   true;    
  }  
  return   false;  
  }  
  //-->  
  </script>  
   
                                                              <form   name="form1"   method="post"   action="record2test.asp"   onSubmit="return   CheckForm();">  
  <input   name="endcalltime"   type="hidden"   value="<%=rs("endcalltime")%>">  
  <input   type="Submit"   value="登记"   name="submit">  
  弹出一个什么也没有写的,点确定后也不调转页,仍在当前页。Top

49 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 16:26:43 得分 0

哦,这样呀?也许里边有空格?这样!  
  alert(form1.endcalltime.value);  
   
  //把他改一下,改成这样:      
     
  alert("123"+form1.endcalltime.value+"456");  
  弹出来的对话框里边123和456中间有空的嘛?  
  Top

50 楼zltostem(五湖沸人)回复于 2005-07-12 16:31:39 得分 0

 
  我的代码:<script   language="javascript"   type="text/javascript">  
  <!--  
   
  function   CheckForm(){  
   
    if(Form1.endcalltime.value==""){     -----------→ ①  
          alert("你现在还不能登记!");  
  Form1.endcalltime.focus();  
  return   false;  
        }  
        return   true;    
  }  
  //-->  
  </script>  
   
  触发:<form   name="form1"   method="post"   action="record2test.asp"   onsubmit="return   CheckForm();"> -------------------→  ②  
   
   
  上面有标识的两句对form的定义和引用好像不一致了  
   
  ①中引用:Form1    
   
  而  
   
  ②中的定义:form1  
   
  好像大小写没有统一哦   :)    
   
  Top

51 楼zltostem(五湖沸人)回复于 2005-07-12 16:34:26 得分 0

 
  Form1.endcalltime.value==""  
   
  →  
   
  document.Forms[0].endcalltime.value==""  
  Top

52 楼roseandwort(常春藤)回复于 2005-07-12 16:41:01 得分 0

我改成这样了:alert("123"+form1.endcalltime.value+"456");  
  弹出的对话框数字之间确实有很长的一段空着。Top

53 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 16:51:39 得分 0

那就对了!可累死我了里边有值了,当然转页了。改一下函数吧:  
  <script   language="javascript"   type="text/javascript">  
  <!--  
  function   CheckForm(){  
  var   temp=form1.endcalltime.value;  
  temp=temp.replace(/(\s*)|(\s*)/g,"");  
        alert("123"+temp+"456");  
    if(temp==""){  
  alert("你现在还不能登记!");  
  return   true;    
  }  
  return   false;  
  }  
  //-->  
  </script>  
   
  声明了一个变量,用来存放没有空格的值。Top

54 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 16:56:03 得分 0

不完善,再改:  
  temp=temp.replace(/(\s*)|(\s*)/g,"");  
  //这个改成:  
  temp=temp.replace(/(^\s*)|(\s*$)/g,"");Top

55 楼roseandwort(常春藤)回复于 2005-07-12 17:01:06 得分 0

噢,现在endcalltime是空就先弹出:123456后面空一块,点确定后又弹出:你现在还不能登记,点确定后就调转到别的页了,我现在想实现弹出:你现在还不能登记后就不做调转还回到刚才那个页。  
   
  endcalltime有值了(我到表里添加值了)后,直接弹出:123加上表里的那个endcalltime的值再加上456,点确定后调转了,这是对的,但怎么把123和456用别的什么代替?Top

56 楼yuanyc(yyc)回复于 2005-07-12 17:06:26 得分 5

这样可以,我试过了。  
  注意:提交按钮设为:type="button"   name   =   "cmdSubmit",其中name不能等于submit,否则与系统的保留字相同将出现错误。  
   
   
  <script   language="javascript"   type="text/javascript">  
  <!--  
  function   CheckForm(){  
    alert(form1.endcalltime.value);  
  if(form1.endcalltime.value==""){  
  alert("你现在还不能登记!");  
  return   true;    
  }  
  //提交表单  
  form1.submit();  
  return   false;  
  }  
  //-->  
  </script>  
   
  <form   name="form1"   method="post"   action="record2test.asp">  
  <input   name="endcalltime"   type="hidden"   value="aa">  
  <input   type="button"   value="登记"   name="cmdSubmit"   onclick="CheckForm()">  
  </form>Top

57 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 17:07:40 得分 0

首先你想用什么代替?  
  那个123和456是我为了让你看清楚里边有值用的,你现在可以取掉123,456,+(2个)。  
  Top

58 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 17:10:35 得分 0

其实我觉得你应该去掉第一个alert!Top

59 楼roseandwort(常春藤)回复于 2005-07-12 17:14:26 得分 0

我把123,456,+(2个)去掉了(或者改成别的什么代替了),还是不够完善,有点别扭,如果endcalltime是空的,先弹出个什么也没有的对话框(或别的东西),点确定后再弹出:你现在还不能登记。Top

60 楼roseandwort(常春藤)回复于 2005-07-12 17:22:30 得分 0

去掉:第一个alert!了,现在看起来比较完善,唯一的缺点就是要刷新这个页面才能取到表里的endcalltime是否有值。谢谢安迪,我会把分都加给你的。Top

61 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 17:23:48 得分 15

首先,我想问问你,如果里边的是空格你同不同意登记,如果也同意登记的话,我想就没有必要改成有temp的那段的代码。如果说空格的情况下你不同意登记,就用我后来给你的有temp的代码。两个都要去掉第一个alert,这样就弹一个对话框了。  
  其次,我想问一下你做的是什么程序,什么样的公司用的!Top

62 楼roseandwort(常春藤)回复于 2005-07-12 17:36:05 得分 0

还是一定要有temp   那段代码的,我试过,不管有没有空格都可以登记,关键就是endcalltime是否为空。  
   
  这个程序实际上是想把一个通话记录划分到某个接电话的人的头上,这样好计算业绩^_^。但更完善一点的我是希望表里的endcalltime有值的时候自动弹出:你现在可以登记了的对话框提醒接电话的人。Top

63 楼andymu077(明治佐玛戒--秀曼)回复于 2005-07-12 17:42:12 得分 0

那说来你们是电信的了。  
  也就是说现在功能实现了?我也到点下班了!Top

相关问题

  • 表单的检测提交
  • javascript 验证表单??
  • 用javascript如何检测提交表单中的所要提交的整型变量 ?
  • javascript表单提交问题
  • javascript修改 css的 表单的问题
  • 怎么实现表单 的javascript 检验。
  • javascript表单验证问题请教(急!)
  • javascript中表单元素的替换?????
  • 用javascript函数提交表单??
  • JAVASCRIPT中获得表单名的问题

关键词

  • 代码
  • 检测
  • 函数
  • 字段
  • 控件
  • 语句
  • 页面
  • 执行
  • endcalltime
  • 弹出

得分解答快速导航

  • 帖主:roseandwort
  • yuanyc
  • andymu077

相关链接

  • Web开发类图书

广告也精彩

反馈

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