注册 登录
编程论坛 ASP.NET技术论坛

母版页子页中如何使用脚本

cyl_jay 发布于 2008-12-14 16:40, 4065 次点击
我想在套用了母版页的子页中使用脚本判断文本框输入为空时给用户的提示信息
在按钮中已经指定了 OnClientClick="checkInCon()"
页面源码如下:
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
 <script language="javascript" type="text/javascript" >
     function checkInCon()
     {   var contmct=document.getElementById("Content1");
        if(contmct.txtTitle.value=='')
        {
            event.returnValue=false;
            alert('标题不能为空!');
            return false;
        }
     }
 </script>
但是在运行中文本输入为空时没有弹出提示对话框,是什么原因呢?
代码是不是写错了,请大家帮帮忙,谢谢!
13 回复
#2
cyl_jay2008-12-14 20:24
代码没错吗?我重新建了一个新页面没套用母版,然后把var contmct=document.getElementById("Content1");

改为var frmmct=document.getElementById("form1"); 运行出来是正确的。
是不是套用了母版页过后要用另一种方法?
#3
小仙2008-12-14 21:46
母版页的脚本,要放在<content>节点下的。或者放在一个单独的js文件里
#4
青格儿2008-12-15 09:37
不知楼主发现没,加上母版后,它页上的控件ID就不再是原来的控件ID,运行了,查看它的源文件,看它的控件ID变成什么了?(通常它会变成ctl00$ContentPlaceHolder1+你设置的控件ID之类的样子)

用JS时,把它的控件ID改成你查看源文件时生成的那个ID 就可以了。
嗯,觉得查源文件麻烦的话,就这样取它的ID: document.getElementById("<%=控件名ID.ClientID%>");
#5
bygg2008-12-15 12:55
是的,母版页加上后,所有的控件ID都会变的.
#6
cyl_jay2008-12-15 14:12
回复 第4楼 青格儿 的帖子
还是有一些问题,我主要是不明白这句 document.getElementById("")  我知道在没有套用母版的页中双引号内是表单的ID
通常是:form1,然后定义var frmmct=document.getElementById("form1"); 通过语句:form1.控件ID.value 可对控件内容进行提取
  但在一个新建的页面套用母版页过后,我用同样的方法就不能提取这个页面中一个控件内容了,我尝试在双引号中填上ContentPlaceHolder1  或是  Content1都不行
还有您说在母版页中的控件ID有变化,我查看了,没发现有什么变化啊,还是txtTitle  btnInsert 之类的
我用得是vs2005
#7
bygg2008-12-15 15:59
看有没有变化,你得通过执行后,查看页面的源码..
#8
hebingbing2008-12-15 18:42
模板也的脚本写在cs页面就好了……
#9
cyl_jay2008-12-15 23:02
回复 第8楼 hebingbing 的帖子
什么意思?cs页面是??
#10
小瘪三的烦恼2008-12-16 08:16
代码文件啊。
#11
青格儿2008-12-16 09:28
是啊。你运行这个页面在IE里。然后再查看源文件。再看有什么变化。
#12
bygg2008-12-16 09:29
设计页面.
#13
cyl_jay2008-12-16 10:13
我就是不想在代码页面写脚本,那样弹出的对话框会把原来页面给覆盖了啊。
我想要对话框显示在原来页面内容之上的那种效果。
#14
cyl_jay2008-12-16 10:40
问题终于解决了
这样定义:var 控件ID=document.getElementById('<%=控件ID.ClientID%>');
和四楼的差不多,只是里面变成单引号
1