翱翔.Net

释放.Net的力量
posts - 75, comments - 1131, trackbacks - 5, articles - 18
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

在ascx中使用js做验证时需要注意的小地方.

Posted on 2004-11-07 22:33 Hover 阅读(1544) 评论(3) 编辑 收藏

解决页面包含两个用户控制且都有Form提交的时按钮验证事件混乱
接上篇。
我把验证代码,简单的验证为空放在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。

把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>