您的位置:首页 > Web前端 > JavaScript

在ascx中使用js找不到对象问题解决

2010-01-20 09:20 766 查看
我把验证代码,简单的验证为空放在ascx里了。按钮的单击事键也对应了checkForm()了。

<script language="JavaScript">
<!--
function checkForm(){
if (document.Form1.txtUserName.value.length == 0) {
alert("请输入用户名.");
document.Form1.txtUserName.focus();
return false;
}

return true
}
-->
</script>

然后把ascx放到aspx里。运行。根本不行。查看源码得知.TextBox的ID,前面加上了
<input name="QuickForumLogin1:txtUserName" type="text" id="QuickForumLogin1_txtUserName" style="width:95px;" />

QuickForumLogin为ascx的名称。放到aspx里后自动后面加个1.
这样js无法找到Form的txtUserName。
注:TextBox放在界面上的会加上QuickForumLogin1,如果是后台输出的将不会加上
解决1.把js的验证代码改成,问题解决。通过查看生成的HTML.

<script language="JavaScript">
<!--
function checkForm(){
if (document.Form1.QuickForumLogin1_txtUserName.value.length == 0) {
alert("请输入用户名.");
document.Form1.QuickForumLogin1_txtUserName.focus();
return false;
}
return true
}
-->
</script>

解决2.把你地控件用ClientID转换一下就可以了。例如
var tempSendTime= document.getElementById('<%=sendTime.ClientID%>');
这样tempSendTime就是你ascx中控间在aspx中的名字了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐