很头疼的问题,表单里的隐藏项用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




