引用了母版页的服务器控件获取元素如下,再者说你getElementById 本身写的就有问题var strTxtName =document.getElementById("<%=tbName.ClientID%>").value;
解决方案 »
- ControlJS 方法封装和调用顺序的问题
- firefox得到event了,但是为何event.clientX还是为undefined?
- [求助]按键进行页内查找
- ocument write输出函数时出错。
- 怎么将js里的yyyy-MM-dd HH:MM 转化为yyyy-MM-DD,把时和分钟去掉,js里怎么实现
- js如何修改url
- 哪里有比较好的jsp网站的模版
- 如何远程查看HTML代码(不运行代码)??
- 关于JavaScript 问题2
- 怎么控制页面全局的字体大中小效果,求大神指点。
- getJSON的问题求指点~~
- 急求:瀑布流masonry结合infinitescroll 的div重叠的问题
protected void Page_load()
{
objtb = new TextBox();
objtb.ID="tbName";
form1.Controls.Add(objtb);
this.DataBind();
}var strTxtName = document.getElementsByID("<%#objtb.ClientID%>").value;
+1你的if和else都没执行,所以你就要想到是if以前的语句出错了,之所以没反应,是浏览器没报出来
编译器错误消息: CS0103: 当前上下文中不存在名称“objtb”
var strTxtName =document.getElementById("<%=tbName.ClientID%>").value;
在javascript代码里,已经将文本框控件的ID改成了tbName,运行,提示仍然是:
编译器错误消息: CS0103: 当前上下文中不存在名称“tbName”
首先模板页是不能直接引用子页的控间
其次 用了c#的服务端控间 在用js控制 那是不顺畅的用法
还有 解藕原则 一个方法 怎么将未知东西作为常量 如果是该方法输出依赖于该常量 那么这个方法 需要重构
function test(id){
document.getelementbyid(id)
.....
}........onclicneclick=test(this.id)
我按照你的意思改了,但是check函数里,输出始终是执行else
<script language="javascript" type="text/javascript">
function check(id) {
var res = document.getElementById(id).value;
if (res == "")
alert("res");
else
alert("no");
}
</script>无论我文本框是否填写内容,始终挑出来对话框,显示"no"。请提示!
首先 进入了 else 那么证明你的 id 指向的 dom 是存在的 不然 第一行就 报错另外 == "" 能说明什么呢?现在 光这个代码 不太看得出你的 业务逻辑 所以我不知道你 的问题是什么如果你觉得 没有按你的想象执行
那么 你要
alert(id);
alert(res);
你打印看 这2个 是你期待的数据吗?
你id不对 你要提供 文本框的id 你现在 提供的 this.id是 按钮的id
我写 this.id只是给你一个 示例你要获取你的文本框 办法很多 id不行 就用 name 或者 class 或者 其他属性 去获取另外protected void Page_load()
{
TextBox objtb = new TextBox();
objtb.ID="tbName";
form1.Controls.Add(objtb);
}这个有什么意义呢? 你在pageload时 无条件的 添加了一个文本框
那么 和你再页面上 直接 放一个文本框 有什么区别呢? 为了 获取id?(哈哈)如果你要做一个提交前的检验 c# 有自带的 检验功能的组件 你在页面拖一个 文本框 然后拖一个检验组件 绑定 这个文本框
检验组件设置 你需要的检查(有一个正则检查) 如果 检查不合格 那么 同窗体 其他 控件的提交 将 不会执行
这个完全不用写代码
我其实要实现的是 :一个网上考试系统,当显示题目的那个页面载入的时候,这些用到的文本框和单选按钮等都是动态生成,而不是在web页里,静态的放上去的。
就要验证文本框里是否有内容等,就是需要用JS验证。我生成题目的页面是套用母版页的,所有题目都是通过数据表里读取出来的。这是我的业务逻辑。